cindraMedlem sedan juli 200417 inlägg
Tja!
Jag ska uppdatera en rad i databasen o har gjort ett formulär där den befintliga informationen ska visas. Problemet är att bara en rad från databasen hämtas o visas i mitt formulär.
Jag har förstått att det har något att göra med mysql_fetch_object. Jag har provat att sätta in mysql_fetch_array o några andra kommando men inget funkar.
Hur gör jag???
LarsGMedlem sedan dec. 200012 465 inlägg
Visa den kod du har.
Det låter som om detta är mer relaterat till PHP än SQL.
The_HulkMedlem sedan juni 20031 937 inlägg
har du gjort så att den nuvarande informationen visas i formuläret?
för att uppdatera kan man använda t.ex mysql_query() där du skickar med din SQL-sats.
vet du hur SQL-satsen ska se ut?
UPDATE tabell SET kolumn=nytt_värde WHERE kolumn=gammalt_värde
var ett litet exempel för att försöka beskriva hur man gör.
cindraMedlem sedan juli 200417 inlägg
Såhär ser min kod ut nu...
<?php
if(!empty($_POST['id']) and empty($_POST['perform']))
{
$id = $_POST['id'];
$hamta = "SELECT * FROM dagbok WHERE id = '$id'";
$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
$rad = mysql_fetch_object($resultat);
print("<form method=POST action=upd.php>");
print("<input type=hidden name=id value=" . $rad->id . ">");
print("<input type=hidden name=perform value=upd>");
print("<tr heigt=23>");
print("<td width=60 align=right>");
print("<span class=rubrik>Bild</span>");
print("</td>");
print("<td>");
print("<input type=text class=input size=50 name=bild value=" . $rad->bild . ">");
print("</td>");
print("</tr>");
print("<tr heigt=23>");
print("<td width=60 align=right>");
print("<span class=rubrik>Datum</span>");
print("</td>");
print("<td>");
print("<input type=text class=input size=50 name=datum value=" . $rad->datum . ">");
print("</td>");
print("</tr>");
print("<tr heigt=23>");
print("<td width=60 align=right>");
print("<span class=rubrik>Rubrik</span>");
print("</td>");
print("<td>");
print("<input type=text class=input size=50 name=rubrik value=" . $rad->rubrik . ">");
print("</td>");
print("</tr>");
print("<tr heigt=23>");
print("<td width=60 align=right>");
print("<span class=rubrik>Text</span>");
print("</td>");
print("<td>");
print("<textarea class=input cols=50 rows=30 name=text value=" . $rad->text . ">");
print("</textarea></td>");
print("</tr>");
print("<tr heigt=23>");
print("<td width=60 align=right>");
print("</td>");
print("<td>");
print("<input type=submit class=knapp value=Uppdatera>");
print("</td>");
print("</tr>");
mysql_free_result($resultat);
}
?>
The_HulkMedlem sedan juni 20031 937 inlägg
är det från filen upd.php?
istället för att ha print() på varje rad brukar det vara enklare att lägga den största delen av HTLM-koden utanför PHP-koden alltså:
<?
// php-kod
?>
html-kod
<?
// php-kod
?>
för att skriva ut värdet från en variable när man är i HTLM-området skriver man:
<?=$variabel?>
The_HulkMedlem sedan juni 20031 937 inlägg
upd.php kan se ut lite så här:
if($_POST['perform']=="upd" && $_POST['id'] != "")
{
$sql = "UPDATE dagbok SET bild='".$_POST['bild']."', datum='".$_POST['datum']."' WHERE ID=".$_POST['id'];
mysql_query($sql);
}
du får bygga ut SQL-satsen så den får med alla värden du vill
LarsGMedlem sedan dec. 200012 465 inlägg
cindraMedlem sedan juli 200417 inlägg
Asså, allting funkar perfekt förutom att bara en del av innehållet i databasen hämtas till formulärfälten. I tex rubriken hämtas bara första ordet...
@ndersMedlem sedan juni 200026 914 inlägg
Så blir det när man inte omsluter sina value:s i formulärfälten med citationstecken eller apostrofer. Så här ska det vara:
print("<input type=text class=input size=50 name=rubrik value=\\"" . $rad->rubrik . "\\">");
cindraMedlem sedan juli 200417 inlägg
Tjoohoo... Du e bäst @anders, nu funkar det perfekt! :L