Hallo allemaal,

Ik ben bezig met een scriptje om een gebruiker te wijzigen.
Ik krijg het voor elkaar dat hij de juiste velden laat zien bij de betreffende ID..
Maar.. Zodra ik de gegevens wijzig slaat de query niks op.

Is er iemand die t foutje ziet of moet ik het compleet over een andere boeg gooien?

--Update.php--

<?php
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar
$id=$_GET['id'];

// Retrieve data from database 
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post" action="update_ac.php">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td colspan="11"><strong>Data aanpassen</strong> </td>
</tr>
<tr>
<td align="center"><strong>Speler 1</strong></td>
<td align="center"><strong>Email 1</strong></td>
<td align="center"><strong>Telefoon</strong></td>
<td align="center"><strong>Adres 1</strong></td>
<td align="center"><strong>Speler 2</strong></td>
<td align="center"><strong>Email 2</strong></td>
<td align="center"><strong>Adres 2</strong></td>
<td align="center"><strong>Speler 3</strong></td>
<td align="center"><strong>Email 3</strong></td>
<td align="center"><strong>Adres 3</strong></td>
<td align="center"><strong>Teamnaam</strong></td>
</tr>
<tr>
<td>
<input name="naam1" type="text" id="naam1" value="<? echo $rows['naam1']; ?>">
</td>
<td>
<input name="email1" type="text" id="email1" value="<? echo $rows['email1']; ?>" size="20">
</td>
<td>
<input name="telefoon" type="text" id="telefoon" value="<? echo $rows['telefoon']; ?>" size="20">
</td>
<td>
<input name="adres1" type="text" id="adres1" value="<? echo $rows['adres1']; ?>" size="20">
</td>
<td>
<input name="naam2" type="text" id="naam2" value="<? echo $rows['naam2']; ?>">
</td>
<td>
<input name="email2" type="text" id="email2" value="<? echo $rows['email2']; ?>" size="20">
</td>
<td>
<input name="adres2" type="text" id="adres2" value="<? echo $rows['adres2']; ?>" size="20">
</td>
<td>
<input name="naam3" type="text" id="naam3" value="<? echo $rows['naam3']; ?>">
</td>
<td>
<input name="email3" type="text" id="email3" value="<? echo $rows['email3']; ?>" size="20">
</td>
<td>
<input name="adres3" type="text" id="adres3" value="<? echo $rows['adres3']; ?>" size="20">
</td>
<td>
<input name="teamname" type="text" id="teamname" value="<? echo $rows['teamname']; ?>" size="20">
</td>
</tr>
<tr>
<td>
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
</td>
<td>&nbsp;</td>
</tr>
</table>
</td>
</form>
</tr>
</table>

<?php
// close connection 
mysql_close();
?>


--update_ac.php--

<?php
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database 
$sql="UPDATE $tbl_name SET naam1='$naam1' AND email1='$email1' AND telefoon='$telefoon' AND adres1='$adres1' AND naam2='$naam2' AND email2='$email2' AND adres2='$adres2' AND naam3='$naam3' AND email3='$email3' AND adres3='$adres3' AND teamname='$teamname' WHERE id='$id'";
$result=mysql_query($sql);

// if successfully updated. 
if($result){
echo "Gelukt! Wijzigingen zijn opgeslagen";
echo "<BR>";
echo "<a href='list_records.php'>Klik hier om de wijziging te bekijken</a>";
}

else {
echo "ERROR";
}

?>

Zet error_reporting(E_ALL) eens aan, want waar komen al die $vars vandaan?
En stel dat het werkt, dan is het lek => sql-injection. De SELECT is ook lek.
Verder handig om te weten dat mysql_ functies gaan verdwijnen.
Gebruik dus mysqli_ of pdo.
In de eerste plaats: Error reporting inschakelen, ook bij SQL error reporting bijmaken.

Verder,
zet in updat_ac.php eens de regel:


    echo($sql);


ergens nadat je $sql gedefinieerd hebt.
Ik denk dat je dan heel snel zult zien wat daar mis gaat, de variabelen hebben geen waarde.

SET naam1='$naam1' AND email1='$email1' AND

Vervang AND door een komma.
Dit soort basis fouten, kan je voorkomen door een tutorial te volgen
Waar komen $naam1, $email1, etc. vandaan in update_ac.php ?

Reageren