Hallo,
voor een site heb ik een edit-functie geschreven waar nog een fout in zit.

Het ophalen van de gegevens lukt wel, maar het opslaan van de nieuwe gegevens gaat niet. Hij slaat namelijk de oude gegevens, die er al waren, nog een keer op; zo lijkt het, omdat hij geen foutmelding geeft, maar wel de melding ".. is succesvol bewerkt in de database".

stuk code:
<?php

//verbinding met database gemaakt


$action = $_GET['action'];
if($action == "do") {

//action=do staat voor: het opslaan voor nieuwe gegevens

$id = $_GET["id"];
$artist = $_POST["artist"];
$name = $_POST["name"];
$tracklist = $_POST["tracklist"];
$content = $_POST["content"];

$input = "UPDATE albums SET artist='$artist',name='$name',tracklist='$tracklist',content='$content' WHERE id='$id'";

if(mysql_query($input)) {
echo $name." is succesvol bewerkt in de database. ".mysql_error();
} else {
echo "Foutmelding: Recensie is niet bewerkt.. ".mysql_error();
}
}

elseif($action == "edit") {
//action=edit slaat op: gegevens uit de SQL halen, en bewerken.
$id = $_GET['id'];
$query = "SELECT * FROM albums WHERE id='$id'";
$sql = mysql_query($query) or die("MySQL Error:".mysql_error());

while($row = mysql_fetch_object($sql) ) {

echo "Edit Album-recensie van ".$row->author."<br><b>";
echo $row->artist." - ".$row->name."</b><br>";

echo "<form action=\"edit_album.php?action=do\" method=POST>";

$artist = $row->artist;
echo "<br>Artiest: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=text name=name value=".$artist.">";
$name = $row->name;
echo "<br>Album:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=text name=name value=".$name.">";

echo "<p>Tracklist Album<br>";
$tracklist = $row->tracklist;
echo "<textarea cols=40 rows=12 name='tracklist'>".$tracklist."</textarea><p>";

echo "Recensie<br>";
$content = $row->content;
echo "<textarea cols=70 rows=18 name='content'>".$content."</textarea>";

echo "<br><input type=submit value='Bewerken'>";

}
}
?>




N.B. ik krijg dus geen parse- of MySQL errors.
Het updaten van nieuwe gegevens lukt dus niet.
Als ik in PHPmyAdmin kijk, zie ik ook dat er niks is geupdate.
Oke het is al opgelost :S

Het probleem was..
Ik gaf hier wel als action:
echo "<form action=\"edit_album.php?action=do\" method=POST>";

maar in die url staat geen ?id= meer, dus kon hij de id niet bepalen.
Snap eigenlijk niet waarom ik dan geen mysql_error als output erbij kreeg maar goed.
Omdat dat geen PHP en/of SQL fout is. Maar een denkfout, die wordt omgezet naar HTML.

Edit: ID wordt, als het leeg is, behandelt als 0.

Reageren