Hallo,
Ik heb een vraag over het updaten en deleten van een database.

Gebruik deze code:
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$id=$_GET['id'];
$query="SELECT * FROM contacts WHERE id='$id'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();

$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

?>

<form action="updated.php">
<input type="hidden" name="ud_id" value="<? echo "$id"; ?>">
First Name: <input type="text" name="ud_first" value="<? echo "$first"?>"><br>
Last Name: <input type="text" name="ud_last" value="<? echo "$last"?>"><br>
Phone Number: <input type="text" name="ud_phone" value="<? echo "$phone"?>"><br>
Mobile Number: <input type="text" name="ud_mobile" value="<? echo "$mobile"?>"><br>
Fax Number: <input type="text" name="ud_fax" value="<? echo "$fax"?>"><br>
E-mail Address: <input type="text" name="ud_email" value="<? echo "$email"?>"><br>
Web Address: <input type="text" name="ud_web" value="<? echo "$web"?>"><br>
<input type="Submit" value="Update">
</form>

<?
++$i;
}
?>

En daarnaast deze code:

<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);

$query="UPDATE contacts SET first='$ud_first', last='$ud_last', phone='$ud_phone', mobile='$ud_mobile', fax='$ud_fax', email='$ud_email', web='$ud_web' WHERE id='$ud_id'";
@mysql_select_db($database) or die( "Unable to select database");
mysql_query($query);
echo "Record Updated";
mysql_close();
?>

Nou zou dit het record moeten updaten, maar er gebeurt helemaal niks? Wat doe ik fout? Heb zelf 't idee dat het iets met $id te maken heeft.. Kan iemand mij helpen??
Alvast bedankt!!!!
Groetjes Esther
zet je complete code ff tussen code tags

geeft het ook foutmeldingen?
<form action="updated.php">
Zet daar method="POST" bij.

===> En daarnaast deze code:

Is dat een ander bestand. Haal dan je gegevens op met $_POST['....'].
Zie je in je formulier wel waarden die uit de database komen?

2 opmerkingen:

het verbinden met de SQL server en de database zou je ook in dbinfo.inc.php kunnen plaatsen, dan hoef je dat niet telkens te typen. Alleen maar dbinfo.inc.php icluden en gaan met die banaan ;)

Je kan beter de variabelen buiten de quotes houden:
$query="UPDATE contacts SET first='$ud_first' WHERE id='$ud_id'; wordt dan:
$query="UPDATE contacts SET first = '" . $ud_first . "' WHERE id = '" . $ud_id . "'";
Dit is de code van update.php

<html>
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$id=$_GET['id'];
$query="SELECT * FROM contacts WHERE id='$id'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();

$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

?>

<form action="updated.php" method="POST">
<input type="hidden" name="ud_id" value="<? echo "$id"; ?>">
First Name: <input type="text" name="ud_first" value="<? echo "$first"?>"><br>
Last Name: <input type="text" name="ud_last" value="<? echo "$last"?>"><br>
Phone Number: <input type="text" name="ud_phone" value="<? echo "$phone"?>"><br>
Mobile Number: <input type="text" name="ud_mobile" value="<? echo "$mobile"?>"><br>
Fax Number: <input type="text" name="ud_fax" value="<? echo "$fax"?>"><br>
E-mail Address: <input type="text" name="ud_email" value="<? echo "$email"?>"><br>
Web Address: <input type="text" name="ud_web" value="<? echo "$web"?>"><br>
<input type="Submit" value="Update">
</form>

<?
++$i;
}
?>
</html>

En dit is de code die de update hoort uit te voeren, updated.php

<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);

$query="UPDATE contacts SET first='$ud_first', last='$ud_last', phone='$ud_phone', mobile='$ud_mobile', fax='$ud_fax', email='$ud_email', web='$ud_web' WHERE id='$ud_id'";
@mysql_select_db($database) or die( "Unable to select database");
mysql_query($query);
echo "Record Updated";
mysql_close();
?>

Weet iemand wat het probleem is?
Lees de vorige posts eens door.
als ik update.php uitvoer, geeft ie geen foutmeldingen, hij laat zelfs helemaal niks zien.

Wanneer ik in update.php deze regel verander:
$query="SELECT * FROM contacts WHERE id='$id'";

in

$query="SELECT * FROM contacts WHERE id='1'";

dan laat ie wel het formulier zien, met de ingevoerde waarden, wanneer ik deze verander en op updaten klik, krijg ik gewoon de melding "Record Updated", alleen is er in de database helemaal niks veranderd.

Groetjes Esther
SanThe schreef op 30.03.2006 13:49
Lees de vorige posts eens door.


Je moet de $vars uit het fomulier ophalen met $_POST['var'] en dat doe je nergens. Ook de tip van Kasper om $vars buiten quotes te houden doe je ook niks mee.
DANKJEWEL SanThe!!!!!... heb de $vars opgehaald met #_POST['var'] en het updaten werkt nu!!

Maar alleen wanneer ik in update deze regel verander:
$query="SELECT * FROM contacts WHERE id='$id'";

in

$query="SELECT * FROM contacts WHERE id='1'";

Wat doe ik nu nog fout dan? Gr Esther
Waar komt die $id vandaan?
Uit de tabel contacts:
id int(6) NOT NULL auto_increment

in update.php heb ik het volgende:
$id=$_POST['id'];
$query="SELECT * FROM contacts WHERE id='$id'";

En dan in het formulier in update.php:
<input type="hidden" name="ud_id" value="<? echo "$id"; ?>">

Reageren