[SQL]Update query werkt niet
Ik heb een klein probleempje. Ik heb een formulier. Alles gegevens worden keurig opgehaalt en zet het als value in elk vakje. Maar nu moet ik hem ook aanpassen en dan weer veranderen.
Ik heb deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//Formuliertje
while($row=mysql_fetch_assoc($result)){
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<p>';
echo 'Link naar afbeelding: <input name="Afbeelding" type="text" id="Afbeelding" value="'.$row['Afbeelding'].'" /><br />';
echo 'Titel: <input name="Titel" type="text" id="Titel" value="'.$row['Titel'].'" /><br />';
echo 'Link: <input name="Link" type="text" id="Link" value="'.$row['Link'].'" /><br />';
echo 'Beschrijving: <textarea rows="10" cols="50" name="Beschrijving" id="Beschrijving">'.$row['Beschrijving'].'</textarea><br />';
echo '<input type="submit" value="Wijzigen">';
echo '</p><hr />';
echo '</form>';
}
//Oke, veranderen die zooi...
$ID = mysql_real_escape_string($_POST['ID']);
$Link = mysql_real_escape_string($_POST['Link']);
$Titel = mysql_real_escape_string($_POST['Titel']);
$Afbeelding = mysql_real_escape_string($_POST['Afbeelding']);
$Beschrijving = mysql_real_escape_string(nl2br($_POST['Beschrijving']));
$query2 = "UPDATE portfolio SET Link='$Link', Titel='$Titel', Afbeelding='$Afbeelding', Beschrijving='$Beschrijving' WHERE ID='".$ID."'";
$result2 = mysql_query($query2) or die(mysql_error());
?>
//Formuliertje
while($row=mysql_fetch_assoc($result)){
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<p>';
echo 'Link naar afbeelding: <input name="Afbeelding" type="text" id="Afbeelding" value="'.$row['Afbeelding'].'" /><br />';
echo 'Titel: <input name="Titel" type="text" id="Titel" value="'.$row['Titel'].'" /><br />';
echo 'Link: <input name="Link" type="text" id="Link" value="'.$row['Link'].'" /><br />';
echo 'Beschrijving: <textarea rows="10" cols="50" name="Beschrijving" id="Beschrijving">'.$row['Beschrijving'].'</textarea><br />';
echo '<input type="submit" value="Wijzigen">';
echo '</p><hr />';
echo '</form>';
}
//Oke, veranderen die zooi...
$ID = mysql_real_escape_string($_POST['ID']);
$Link = mysql_real_escape_string($_POST['Link']);
$Titel = mysql_real_escape_string($_POST['Titel']);
$Afbeelding = mysql_real_escape_string($_POST['Afbeelding']);
$Beschrijving = mysql_real_escape_string(nl2br($_POST['Beschrijving']));
$query2 = "UPDATE portfolio SET Link='$Link', Titel='$Titel', Afbeelding='$Afbeelding', Beschrijving='$Beschrijving' WHERE ID='".$ID."'";
$result2 = mysql_query($query2) or die(mysql_error());
?>
Hij verandert vreemd genoeg niks in de database, en als ik hem dus opnieuw uitlees krijg ik hetzelfde als al in de database stond...
Kan iemand me helpen?
Gr. Luke
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
N.a.v. dat stukje kwam ik er achter dat $ID leeg was, omdat ik die niet in een post had staan. (duh!! ;))
Dat moest dus dit zijn:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//Formuliertje
while($row=mysql_fetch_assoc($result)){
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<p>';
echo 'Link naar afbeelding: <input name="Afbeelding" type="text" id="Afbeelding" value="'.$row['Afbeelding'].'" /><br />';
echo 'Titel: <input name="Titel" type="text" id="Titel" value="'.$row['Titel'].'" /><br />';
echo 'Link: <input name="Link" type="text" id="Link" value="'.$row['Link'].'" /><br />';
echo 'Beschrijving: <textarea rows="10" cols="50" name="Beschrijving" id="Beschrijving">'.$row['Beschrijving'].'</textarea><br />';
echo '<input type="submit" value="Wijzigen">';
echo '</p><hr />';
echo '</form>';
}
//Oke, query gedaan, laat maar zien dan!
$ID = $row['ID'];
$Link = mysql_real_escape_string($_POST['Link']);
$Titel = mysql_real_escape_string($_POST['Titel']);
$Afbeelding = mysql_real_escape_string($_POST['Afbeelding']);
$Beschrijving = mysql_real_escape_string(nl2br($_POST['Beschrijving']));
$query2 = "UPDATE portfolio SET Link='$Link', Titel='$Titel', Afbeelding='$Afbeelding', Beschrijving='$Beschrijving' WHERE ID='".$ID."'";
$result2 = mysql_query($query2) or die(mysql_error());
?>
//Formuliertje
while($row=mysql_fetch_assoc($result)){
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<p>';
echo 'Link naar afbeelding: <input name="Afbeelding" type="text" id="Afbeelding" value="'.$row['Afbeelding'].'" /><br />';
echo 'Titel: <input name="Titel" type="text" id="Titel" value="'.$row['Titel'].'" /><br />';
echo 'Link: <input name="Link" type="text" id="Link" value="'.$row['Link'].'" /><br />';
echo 'Beschrijving: <textarea rows="10" cols="50" name="Beschrijving" id="Beschrijving">'.$row['Beschrijving'].'</textarea><br />';
echo '<input type="submit" value="Wijzigen">';
echo '</p><hr />';
echo '</form>';
}
//Oke, query gedaan, laat maar zien dan!
$ID = $row['ID'];
$Link = mysql_real_escape_string($_POST['Link']);
$Titel = mysql_real_escape_string($_POST['Titel']);
$Afbeelding = mysql_real_escape_string($_POST['Afbeelding']);
$Beschrijving = mysql_real_escape_string(nl2br($_POST['Beschrijving']));
$query2 = "UPDATE portfolio SET Link='$Link', Titel='$Titel', Afbeelding='$Afbeelding', Beschrijving='$Beschrijving' WHERE ID='".$ID."'";
$result2 = mysql_query($query2) or die(mysql_error());
?>
Maar dan werkt ie nog niet...
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Na een update kun je checken of er ook echts iets is veranderd met mysql_affected_rows().
Edit: Typo.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
SanThe schreef op 10.02.2007 20:35:
Je gebruikt een while. Zijn er dan meerdere resultaten? Zo ja, Dan pak je altijd het laatste 'ID".
En wat bedoel je daar mee? Ik vat 'm even niet ;)
En inderdaad zijn er meerdere resultaten
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Als je slechts één record uit de database krijgt, (en je weet dat zeker) dan gebruik je geen while-loop om de data op te halen. Krijg je echter meerdere records dan gebruik je een while.
Aangezien $ID = $row['ID']; NA de while staat, pakt dit altijd alléén het 'ID' uit het laatste record.
P.S. Ik zag nog een typo hoor :P
Quote:
mysql_affercted_rows()
Zullen we daar maar even de r weghalen? ;)
dus :)
Edit:
SanThe, bedankt, dat werkt als een tierelier!
SanThe, bedankt, dat werkt als een tierelier!
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Luke Banning schreef op 10.02.2007 20:53:
P.S. Ik zag nog een typo hoor :P
Oeps: Ik heb het snel aangepast. Thanks.
Luke Banning schreef op 10.02.2007 20:53:
SanThe, bedankt, dat werkt als een tierelier!
Maak ik hier uit op dat het probleem is verholpen?
Maar het werkt, helemaal zoals het mijn bedoeling was! Bedankt!
Edit:
Voor het wijzen op een aantal typo's, haha, no problem :p
Voor het wijzen op een aantal typo's, haha, no problem :p
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
Graag gedaan, Jij ook bedankt.