SQL Update probléma
Sziasztok!
készítenék egy olyan sql lekérdezőt, amellyel lehet törölni ill. módosítani is. Az alábbi kódban van valamilyen hiba, mert minden működik, kivéve a módosítást. Légyszíves segítsetek! itt a kód:
*** list.php ****** delete_user.php ****** change_user.php ****** change_form.php ***előre is köszönöm!
■ készítenék egy olyan sql lekérdezőt, amellyel lehet törölni ill. módosítani is. Az alábbi kódban van valamilyen hiba, mert minden működik, kivéve a módosítást. Légyszíves segítsetek! itt a kód:
*** list.php ***
<?
$kapcsolat=mysql_connect("...","...","...");
mysql_select_db("...") or die("Adatbázis hiba!");
$parancs = "SELECT * FROM proba";
$eredmeny = mysql_query($parancs);
$szin = "darkgrey";
while ($sor = mysql_fetch_array($eredmeny)) {
if ($szin=="darkgrey") {
$szin = "white";
}
else {
$szin = "darkgrey";
}
?>
<tr bgcolor="<?= $szin?>" style="color:#000000">
<td align=center><?= $sor["saz"] ?></td>
<td align=center><?= $sor["ered"] ?></td>
<td align=center>
<a href="change_form.php?id=<?= $sor["id"] ?>&saz=<?= urlencode($sor["saz"]) ?>&ered=<?= $sor["ered"] ?>">Módosítás</a><br /><a href="delete_user.php?id=<?= $sor["id"] ?>">Törlés</a></td>
</tr>
<?
}
?>
<?php
$kapcsolat=mysql_connect("...","...","...");
mysql_select_db("...") or die("Adatbázis hiba!");
$parancs = "DELETE FROM proba WHERE id='".$id."' LIMIT 1";
mysql_query($parancs);
header("location: list.php");
mysql_close($kapcsolat);
?>
<?php
$kapcsolat=mysql_connect("...","...","...");
mysql_select_db("...") or die("Adatbázis hiba!");
$parancs = "UPDATE proba SET saz='$saz', ered='$ered', WHERE id='".$_POST['id']."'";
mysql_query($parancs);
header("Location: list.php");
mysql_close($kapcsolat);
?>
<form action="change_user.php" method="post">
<table>
<tr align="center">
<td><p class="form">saz</p></td>
<td><input type="text" name="saz" class="login" value="<?= $saz?>"/>
<br /></td>
<td><?= $saz;?></td>
</tr>
<tr align="center">
<td><p class="form">ered:</p></td>
<td><input type="text" name="ered" class="login" value="<?= $ered?>"/><br /></td>
</tr>
<tr align="center">
<td><p class="form">Hidden area</p></td>
<td><input type="hidden" name="id" value="<?= $id?>" class="login"></tr>
<tr><td><center><input type="submit" name="change" value="Módosítsuk!"/></center></td>
<td><center><input type="reset" value="RESET!"/></center></td></tr>
</table>
</form>
Debug, vessző
köszi!
egyébként először elírtam valamit a kódban és utána rögtön le is futtattam a print_r($_POST); valamint a mysql_error() parancsot is, de miután kijavítottam a hibát, valahogy ezt a lépést kihagytam :)
mégegyszer köszi!
off
2, nem árt escapelni a bejövő adatokat! nézd meg mi történik, ha aposztrófot írsz az egyik input mezőbe! (persze lehet hogy nálad semmi, de más szervereken történhet..)
3, az input tagek elött te paragraphba írd a címkét, hanem használd a <label for=""> taget!
csak jótanácsként.. :) üdv.