Ik heb een klein scriptje dat 1 record in een tabel moet updaten maar het lukt niet...ik krijg elke keer deze query:
UPDATE roles SET label = '' WHERE id = 14
Hij vult dus gewoon niks in :s
Dit is de code...plz help.

<?php

$username = "root"; // mysql login naam
$password = ""; // mysql wachtwoord
$host = "localhost"; // de host van de mysql database
$database = "gebruikers"; // de naam van de database


if (!@mysql_select_db($database, @mysql_connect($host, $username, $password)))
{
echo "Database connectie mislukt!";
exit();
}

$sql = "SELECT id,label FROM roles ORDER BY id";
$res = mysql_query($sql);
$txt = $_POST['txt'];

echo "Klik <a href=\"addrole.php\">hier</a> om een role toe te voegen.<p>";

if($_GET['actie'] == "Wijzig")
{


// code om label te wijzigen
$update = "UPDATE roles SET label = '" . $txt . "' WHERE id = ".$_GET["ID"]."";
$ss = mysql_query($update) or die(mysql_error());
echo "<h1>$update</h1><p>";
echo "<h1>$txt</h1><p>";
}

elseif($_GET['actie'] == "Verwijderen")
{
// code om ID te verwijderen
$delete = "DELETE FROM roles WHERE id = '".$_GET["ID"]."'";
mysql_query($delete);
echo "<h1>Label verwijderd.</h1><p>";
}

elseif (mysql_num_rows($res) >= 1)
{
echo '<TABLE border="1" cellpadding="2" cellspacing="0">';
echo '<TR><TH>ID <TH>Label <TH>Opties';

while ($row = mysql_fetch_array($res))
{
$row['id'] = ($row['id']);
$row['label'] = ($row['label']);

echo '<TR><TD>';
echo "" . $row['id'] . "</TD>";
echo '<TD>';
echo "<form action=main.php method=post><input type=text name=txt value=". $row['label'] ."></form></TD>";
echo '<TD>';
echo "<a href=?actie=Wijzig&ID=".$row['id']."&LABEL=".$txt.">Wijzig</a><br><a href=?actie=Verwijderen&ID=".$row['id'].">Verwijderen</a>";
echo "</TD>";
}
}
elseif (!(mysql_num_rows($res) >= 1)){
echo "Er zijn geen roles!";
}

else
{
echo "Er zijn geen roles!";
}



?>
Echo die $txt eens.. Ik denk dat daar al niets inzit
Robert schreef op 06.12.2005 17:01
Echo die $txt eens.. Ik denk dat daar al niets inzit


Als je goed kijkt doe ik dat al:
echo "<h1>$txt</h1><p>";

en er komt idd niks uit, hoe komt dat?
Je gebruikt $txt binnen <FORM>, maar dat formulier heeft geen buttons, dus vraag ik me af of
er wel iets gepost wordt.
Burdy schreef op 06.12.2005 21:05
Je gebruikt $txt binnen <FORM>, maar dat formulier heeft geen buttons, dus vraag ik me af of
er wel iets gepost wordt.


Ik gebruik $txt niet binnen form, deze sluit ik al eerder af.
Waarom doe je dit:

<?
$row['id'] = ($row['id']);
$row['label'] = ($row['label']);
?>
Je hebt een while loop waarin je allemaal inputs met dezelfde naam ('txt') aanmaakt. Er staan ook geen dubbele quotes om de naam.

while ($row = mysql_fetch_array($res))
{
$row['id'] = ($row['id']);
$row['label'] = ($row['label']);

echo '<TR><TD>';
echo "" . $row['id'] . "</TD>";
echo '<TD>';
echo "<form action=main.php method=post><input type=text name=txt value=". $row['label'] ."></form></TD>";
echo '<TD>';
echo "<a href=?actie=Wijzig&ID=".$row['id']."&LABEL=".$txt.">Wijzig</a><br><a href=?actie=Verwijderen&ID=".$row['id'].">Verwijderen</a>";
echo "</TD>";
}

Als er meer dan 1 record uit die while loop komt dan zijn de resultaten bij een submit onvoorspelbaar. In gevallen zoals deze kun je beter met de array-notatie werken en je txt velden de naam txt[] geven. Bij een submit krijg je dan een keurige array $_POST['txt'].

Reageren