Kan niets in database plaatsen/verwijderen

Status
Niet open voor verdere reacties.

KeZZaaaa

Gebruiker
Lid geworden
29 jun 2009
Berichten
19
Hoi allemaal,

Ik ben voor een schoolopdracht bezig om een simpel CMS te maken mbv PHP. Normaal gesproken moet dat voor mij geen probleem zijn, aangezien ik dat al vaker gedaan heb. Maar het werkt nu opeens niet, terwijl ik exact dezelfde codes gebruikt heb voor eerdere sites. Ik hoop daarom dat jullie me kunnen helpen, aangezien ik er niet uit komt.

Ik krijg wel de melding dat het bericht is aangepast (of toegevoegd), maar dat is vervolgens niet gedaan. Op deze pagina zijn er 4 tekstblokken die aangepast moeten kunnen worden

Code:
<?php

require_once("../db.php");



	$melding = "";

	$output = "";

	

	$linkNaarDatabase = databaseOpenen();

	$melding =  mysql_error($linkNaarDatabase);

	

	if($melding != ""){

		$content = $melding;

	}else{

		

		$resultaatHandle = mysql_query("SELECT * FROM teksten WHERE pagina = 'Home'");

		

		while($gegevensUitDatabase = mysql_fetch_array($resultaatHandle)){

		$output .='<li><form action="aangepast/index.php" method="POST">';

		$output .='<input type="hidden" name="id" value="' . $gegevensUitDatabase['id'] . '">';

		$output .='<input type="text" value="' . $gegevensUitDatabase['titel'] . '" name="titel" class="invulveld">';

		$output .='<br>';

		$output .='<textarea name="tekst" class="invulblok">' . $gegevensUitDatabase['tekst'] . '</textarea>';

		$output .='<br>';

		$output .='<input type="submit" name="submit" value="Updaten" /></form></li> ';



		}





	}

	

	echo $output;

?>

Code:
<?php

require_once("../../db.php");

	$melding = "";

	$output = "";

	

	$linkNaarDatabase = databaseOpenen();

	$melding =  mysql_error($linkNaarDatabase);

	

	if($melding != ""){

		$content = $melding;

	}else{

		

		$titel = $_POST['titel'];

		$tekst = $_POST['tekst'];

		$id = $_POST['id'];

		

		$resultaatHandle = mysql_query("UPDATE teksten SET titel = '$titel', tekst = '$tekst' WHERE id = '$id' ");

		$output = mysql_error($linkNaarDatabase);	

		$output = "Het bericht is aangepast. U keert automatisch terug naar de website.";



	

	}

	

header("refresh:1;url='../index.php'");

		echo $output;

	

?>
 
Als je wel de melding krijgt dat het bericht is aangepast, maar dit niet is gebeurd denk ik dat je query niet klopt. Alleen merk je dit nu niet, omdat je eerst $output de waarde van mysql_error geeft en daarna overschrijft met de tekst dat het bericht is aangepast. Je kan beter zoiets doen:
PHP:
$resultaatHandle = mysql_query("UPDATE teksten SET titel = '$titel', tekst = '$tekst' WHERE id = '$id' ");
if (!$resultaatHandle)
{
  $output = mysql_error($linkNaarDatabase);
}
else
{
  $output = "Het bericht is aangepast. U keert automatisch terug naar de website.";
}
 
Zelfs al krijg je een error overschrijf je die altijd met "het bericht is aangepast" dus dat zegt weinig. Mogelijk zijn de rechten van de database niet goed ingesteld? Heeft de standaard user wel schrijfrechten?
 
Logisch natuurlijk ...

Ik heb het nu ingesteld zoals Supersnail zegt en aan de hand van de foutmelding die ik kreeg, heb ik nu gezien wat de fout was (ik gebruikte ' ipv ", maar omdat er in de tekst zelf ook een paar keer ' staat, ging het daar dus mis).

Bedankt beiden!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan