meerdere rijen tegelijk updaten met php (Opgelost)
axelneve - 29/12/2009 18:08
Nieuw lid
Hallo iedereen,
voor de atletiekvereniging maak ik op dit moment een site, om alle behaalde resultten te verwerken, en vervolgens na het inloggen door een lid, de door hem/.haar behaalve resultate te tonen.
momenteel ben ik bezig met het admin-gedeelte, om de gegevens in te voeren. daarvoor gebruik ik onderstaand script, maar bij het klikken op aanpassen, worden de gegevens niet geupdated.
is er iemand die mij kan helpen bij het vinden van het probleem?
alvast bedankt
Axel Neve
code: http://www.plaatscode.be/138316 /
4 antwoorden
Gesponsorde links
lemoinet - 29/12/2009 18:15 (laatste wijziging 29/12/2009 18:19)
PHP gevorderde
$result1=mysql_query($sql1) or die(mysql_error());
dan zal je snel het probleem zien
om het in een keer up te daten
$sql1 = "";
for($i=0;$i<$count;$i++){
$sql1 .="UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen[$i] . "', Kogelstoten='" . $Kogelstoten[$i] . "', Hoogspringen='" . $Hoogspringen[$i] . "', Verspringen='" . $Verspringen[$i] . "' WHERE Login='" . $Login[$i] . "';";
}
$result1=mysql_query($sql1);
$sql1 = "" ;
for ( $i = 0 ; $i < $count ; $i ++ ) {
$sql1 .= "UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen [ $i ] . "', Kogelstoten='" . $Kogelstoten [ $i ] . "', Hoogspringen='" . $Hoogspringen [ $i ] . "', Verspringen='" . $Verspringen [ $i ] . "' WHERE Login='" . $Login [ $i ] . "';" ;
}
axelneve - 29/12/2009 19:33 (laatste wijziging 30/12/2009 17:16)
Nieuw lid
bedankt voor de tip.
heb het inmiddels toegevoegd aan het script,
ook heb ik het stukje code vervangen.
dan kan ik nu weer verder gaan puzzelen, maar nu weet ik tenminste waar het probleem in zit.
----------
edit
Op het moment heb ik het script als volgt aangepast:
<?php
$host="---"; // Host name
$username="--"; // Mysql username
$password="---"; // Mysql password
$db_name="---"; // Database name
$tbl_name="gegevens"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
// Count table rows
$count=mysql_num_rows($result);
?>
<table width="499" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="499" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Login</strong></td>
<td align="center"><strong>Speerwerpen</strong></td>
<td align="center"><strong>Kogelstoten</strong></td>
<td align="center"><strong>Hoogspringen</strong></td>
<td align="center"><strong>Verspringen</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" width="150"><? $Login[]=$rows['Login']; ?><? echo $rows['Login']; ?></td>
<td align="center">
<input name="Speerwerpen[]" type="text" id="Speerwerpen" value="<? echo $rows['Speerwerpen']; ?>" size="10" /></td>
<td align="center">
<input name="Kogelstoten[]" type="text" id="Kogelstoten" value="<? echo $rows['Kogelstoten']; ?>" size="10" /></td>
<td align="center">
<input name="Hoogspringen[]" type="text" id="Hoogspringen" value="<? echo $rows['Hoogspringen']; ?>" size="10" /></td>
<td align="center">
<input name="Verspringen[]" type="text" id="Verspringen" value="<? echo $rows['Verspringen']; ?>" size="10" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit" /></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
$sql1 = "";
for($i=0;$i<$count;$i++){
$sql1 .="UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen[$i] . "', Kogelstoten='" . $Kogelstoten[$i] . "', Hoogspringen='" . $Hoogspringen[$i] . "', Verspringen='" . $Verspringen[$i] . "' WHERE Login='" . $Login[$i] . "';";
}
$result1=mysql_query($sql1) or die(mysql_error());
if($result1){
header("location:update_technisch.php");
}
mysql_close();
?>
<?php
$host = "---" ; // Host name
$username = "--" ; // Mysql username
$password = "---" ; // Mysql password
$db_name = "---" ; // Database name
$tbl_name = "gegevens" ; // Table name
// Connect to server and select databse.
$sql = "SELECT * FROM $tbl_name " ;
// Count table rows
?>
<table width="499" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="499" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Login</strong></td>
<td align="center"><strong>Speerwerpen</strong></td>
<td align="center"><strong>Kogelstoten</strong></td>
<td align="center"><strong>Hoogspringen</strong></td>
<td align="center"><strong>Verspringen</strong></td>
</tr>
<?php
?>
<tr>
<td align="center" width="150">
<? $Login [ ] = $rows [ 'Login' ] ; ?> <? echo $rows [ 'Login' ] ; ?> </td>
<td align="center">
<input name="Speerwerpen[]" type="text" id="Speerwerpen" value="
<? echo $rows [ 'Speerwerpen' ] ; ?> " size="10" /></td>
<td align="center">
<input name="Kogelstoten[]" type="text" id="Kogelstoten" value="
<? echo $rows [ 'Kogelstoten' ] ; ?> " size="10" /></td>
<td align="center">
<input name="Hoogspringen[]" type="text" id="Hoogspringen" value="
<? echo $rows [ 'Hoogspringen' ] ; ?> " size="10" /></td>
<td align="center">
<input name="Verspringen[]" type="text" id="Verspringen" value="
<? echo $rows [ 'Verspringen' ] ; ?> " size="10" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit" /></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
$sql1 = "" ;
for ( $i = 0 ; $i < $count ; $i ++ ) {
$sql1 .= "UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen [ $i ] . "', Kogelstoten='" . $Kogelstoten [ $i ] . "', Hoogspringen='" . $Hoogspringen [ $i ] . "', Verspringen='" . $Verspringen [ $i ] . "' WHERE Login='" . $Login [ $i ] . "';" ;
}
if ( $result1 ) {
header ( "location:update_technisch.php" ) ; }
?>
maar nu krijg ik de volgende Error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';UPDATE gegevens SET Speerwerpen='', Kogelstoten='', Hoogspringen='', Verspringe' at line 1
hoe kan ik deze verhelpen?
kilian - 31/12/2009 14:38
Lid
Bij PHP is het niet mogelijk om meerdere query's uit te voeren met 1 commando. Dit is ondermeer een beveiliging tegen mysql injection
Tuinman - 06/01/2010 10:10 (laatste wijziging 06/01/2010 10:11)
Nieuw lid
Dit
for($i=0;$i<$count;$i++){
$sql1 .="UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen[$i] . "', Kogelstoten='" . $Kogelstoten[$i] . "', Hoogspringen='" . $Hoogspringen[$i] . "', Verspringen='" . $Verspringen[$i] . "' WHERE Login='" . $Login[$i] . "';";
}
$result1=mysql_query($sql1) or die(mysql_error());
for ( $i = 0 ; $i < $count ; $i ++ ) {
$sql1 .= "UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen [ $i ] . "', Kogelstoten='" . $Kogelstoten [ $i ] . "', Hoogspringen='" . $Hoogspringen [ $i ] . "', Verspringen='" . $Verspringen [ $i ] . "' WHERE Login='" . $Login [ $i ] . "';" ;
}
moet dit worden
for($i=0;$i<$count;$i++){
$sql1 ="UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen[$i] . "', Kogelstoten='" . $Kogelstoten[$i] . "', Hoogspringen='" . $Hoogspringen[$i] . "', Verspringen='" . $Verspringen[$i] . "' WHERE Login='" . $Login[$i] . "';";
$result1=mysql_query($sql1) or die(mysql_error());
}
for ( $i = 0 ; $i < $count ; $i ++ ) {
$sql1 = "UPDATE " . $tbl_name . " SET Speerwerpen='" . $Speerwerpen [ $i ] . "', Kogelstoten='" . $Kogelstoten [ $i ] . "', Hoogspringen='" . $Hoogspringen [ $i ] . "', Verspringen='" . $Verspringen [ $i ] . "' WHERE Login='" . $Login [ $i ] . "';" ;
}
Nou voert hij namelijk elke keer een mysql_query uit.
Greetz
Gesponsorde links
Dit onderwerp is gesloten .