Ik heb hier een update script, wel niet werkt. Hij zegt wel dat hij update, maar doet dit vervolgens niet. Heb me suf gezocht naar het ontbrekende leestekentje, maar helaas.

edit.php
<?
include('connect.php');

if (isset($_GET["ID"]))
{
$ID = $_GET["ID"];
$query = "SELECT * FROM aaip WHERE ID='".$ID."'";

$result = mysql_query($query);
$rij = mysql_fetch_assoc($result);
//echo(var_dump($rij));
$ID = $rij["ID"];
$tekst = $rij["tekst"];
} else {
echo ("Geen record geselecteerd");
}
?>
    <form name="form1" method="post" action="aaip_edit_check.php" enctype="multipart/form-data">
      <table width="500" border="0" class="tekst">
        <tr>
          <td><input type="hidden" name="ID" id="hiddenField" value="<?= $rij["ID"]; ?>"></td>
        </tr>
        <tr>
          <td><textarea name="tekst" cols="75" rows="20" id="tekst"><?= $rij["tekst"]; ?></textarea></td>
          </tr>
        <tr>
          <td><input type="submit" name="add" id="add" value="Update"></td>
          </tr>
      </table>
      </form>


check.php
<?
include('connect.php');

$query = "SELECT * FROM aaip";
$result = mysql_query($query);

$ID = $_REQUEST["ID"];
$tekst = $_POST["tekst"];

$sql = "UPDATE aaip SET tekst = '$tekst' WHERE ID = '".$ID."'";

?>
<?
$resultaat = mysql_query($sql);
if ($resultaat)
{
//als het gelukt is sturen we door naar lijst
echo("Het record is gewijzigd.<br>");
echo("Klik <a href=\"aaip_add.php\"> hier </a> om er nog een toe te voegen.<br>");
echo("Klik <a href=\"aaip_list.php\"> hier </a> om de lijst te zien");
}
else
{
echo("wegschrijven is mislukt");
}
?>

Ziet iemand de fout?

Je controleert in elk geval niet of er iets is bijgewerkt, mysql_affected_rows() ontbreekt namelijk. Dat de query technisch is gelukt, zegt namelijk nog helemaal niks...

Verder doe je niets aan beveiliging, dat eveneens een probleem.

Ik snap trouwens niet wat die SELECT-query in check.php doet, daar doe je helemaal niets mee.

Ps. Echo is geen functie, ( en ) horen daar dus niet te staan. Tevens zijn dubbele quotes " af te raden, met ' hoef je veel minder te escapen \.
Pfoeh, hoop informatie in een keer!

Goed, mysql_affected_rows heb ik nooit eerder gebruikt. Dit ga ik uitzoeken, maar is dat noodzakelijk voor het functioneren hiervan?

Beveiliging klopt. Laat het eerst werken, dan voeg ik beveiliging toe. Tips?
Select query hoeft niet idd, kan ik slashen.

Maar nu heb je tips gegeven, maar geen concrete oplossing? (correct me if i'm wrong, want dan begrijp ik het/je niet goed (genoeg))

Thnx voor je snelle antwoord anyway!




Waarschijnlijk iets in de richting quotes enzo. Heb je al uitgepluisd waar precies het fout gaat? SQL connectie is goed? Tabelnaam is goed? etc.

Probeer eens die UPDATE query rechtstreeks in je SQL omgeving te gebruiken en indien het dan werkt, de code die dan gegenereert wordt gebruiken, met die leestekens etc. $id hoeft ook niet tussen dubble quotes, uitgaand van het feit dat dit een integer is.
Welk script staat er in aaip_edit_check.php? Want daar gaat je formulier heen.
@ Gerben: Quotes heb ik, zoals ik zei, alles mee geprobeerd. Het is idd een integer, dus dubbele hoeft niet lees ik..

@ SanThe: Dat is check.php, de onderste!
$sql = "UPDATE aaip SET tekst = '$tekst' WHERE ID = ".$ID;
Thnx! Ik ga weer puzzelen!
dat mysql_num_rows was om te kijken of het is gelukt.. wat je nu namelijk doet, is kijken of de query uitgevoerd wordt..
als het trouwens nog niet werkt probeer dan is
mysql_query($sql) or die(mysql_error());

Reageren