Hallo ik heb een probleem met mijn update script
Hij veranderd de pagina niet er komt geen fout melding
Dit bericht komt gewoon in beeld Suc6vol veranderd

Maar hij update niets

Hier de source

<?php
//website veranderen
elseif($_GET['actie'] == verander){
//dit gaan we doen in veranderen
echo "ID<br>";
$sql = "SELECT * FROM pages ORDER BY id DESC";
$resultaat = mysql_query($sql) or die(mysql_error());
while ($list = mysql_fetch_object($resultaat)) {
echo "$list->id | ";
echo ubb_code($list->bericht);
echo "<br>";
}

echo "<br>Welke Website wil je veranderen?";
echo "<br>";
echo '<form method="post">';
echo 'Geef ID op<input type="text" name="id">';
echo "<br>";
echo '<textarea rows="10" name="bericht" cols="51"></textarea>';
echo "<br>";
echo '<input type="submit">';

if($_POST['bericht'] != NULL) {
mysql_query("UPDATE pages SET id,text WHERE id='".$_POST["$list->id"]." AND bericht='".$_POST["$list->bericht"]."'");
echo "Suc6vol veranderd";
?>
Mod-edit
Code-tags toegevoegd
Zet dit eerst maar eens bovenin je script:
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest van je script
?>
Je gaat bij een paar zaken de mist in.
Na je query echo je gewoon echo "Suc6vol veranderd"; dus hij geeft het altijd weer gelukt of mislukt.
Na je query zou je een controle moeten uitvoren of de query daadwerkelijk gelukt is.
Hieronder geef ik een voorbeeldje
<?php
		$sql = "
			UPDATE
				regisseurs
			SET
				id = '".$id."',
				naam = '".$naam."'
			WHERE
				id = '".$rid."' ";
		//Hier de query
		$result = mysql_query( $sql );
		
		if ( $result ) {
			echo 'De gegevens van '.$_POST['naam'].' zijn gewijzigd'.PHP_EOL;
		} else {
			echo 'Sorry, onverwachte fout met de database.';
			trigger_error (mysql_error ());
		}
?>


En als tweede punt maak je een fout bij de tabelnamen

mysql_query("UPDATE pages SET id,text WHERE id='".$_POST["$list->id"]." AND bericht='".$_POST["$list->bericht"]."'");
echo "Suc6vol veranderd";

Je zegt dat hij het veld text moet aanpassen en niet het veld bericht zoals het veld heet als ik het goed begrijp.
@RedCrew: Met if($result) check je alleen of de query gelukt is of niet, maar het zegt niet of er iets is geupdated. Dat kan je weer checken met mysql_affected_rows().
Dat is dan ook weer waar. :)

Maar de query was toch sowieso mislukt omdat hij een onbestaand veld wou updaten
En wat denk je van:
elseif($_GET['actie'] == verander){

Moet vast en zeker dit zijn:
elseif($_GET['actie'] == "verander"){
SanThe schreef op 22.01.2007 09:43
En wat denk je van:
elseif($_GET['actie'] == verander){

Moet vast en zeker dit zijn:
elseif($_GET['actie'] == "verander"){


Dat ziet hij zelf ook wel als hij naar jou geluisterd heeft San. Bovenstaande geeft namelijk een Notice.
"undefined index blabla in blabla on line blabla"

[edit] Want ik neem aan dat hij jou stukje over error reporting heeft overgenomen[/edit]

Reageren