Klein php vraagje.
Ik probeer een opmerkingen veld te maken wat door een gebruiker geupdate kan worden. Oftewel veld 'opmerkingen' kan worden uitgelezen met de tekst die in de database staat, dit kan geupdate worden en vervolgens opgeslagen. Uitlezen gaat prima dus de tekst uit de database komt netjes in de textarea te staan. Updaten lukt vervolgens niet en de reeds bestaande tekst uit de database wordt verwijderd. Vermoedelijk komt de input variable niet door? Ik denk zelf dat ik er naast zit met de row.
PHP Code:
if ($_GET['aktie'] == 'editopmerking') {
$query = "UPDATE tabel SET opmerkingen = '".$_POST['opmerkingen']."'";
mysql_query($query);
echo '
<H1>Admin -> Opmerking toevoegen/aanpassen</H1>
<P>De opmerking is aangepast! Klik <a href="/admin/admin.php?item=overzicht">hier</a> om terug te gaan.</P>
';
}else{
if ($_GET['aktie'] == 'opmerking') {
$nieuws_id = $_GET['id'];
$query = "SELECT * FROM tabel WHERE id='$nieuws_id'";
$resultaat = mysql_query($query);
$row = mysql_fetch_array($resultaat);
echo '
<H1>Admin -> Opmerking toevoegen/aanpassen</H1>
<P>Opmerking toevoegen/aanpassen voor '.$row['voorletters'].' '.$row['tussenvoegsel'].' '.$row['achternaam'].'</P>
<form id="editopmerking" name="editopmerking" value="editopmerking" method="post" action="admin.php?item=bekijk&id='.$row['id'].'&aktie=editopmerking">
<table width="600" border="0" class="form">
<tr>
<td>
<textarea name="opmerkingen" class="form" id="opmerkingen" cols="93" rows="5">'.$row['opmerkingen'].'</textarea>
</td>
<td width="50"></td>
</tr>
<tr>
<td>
<li><a href="admin.php?item=bekijk&id='.$row['id'].'&aktie=editopmerking">Update opmerkingen</a>
</td>
<td width="50"></td>
</tr>
</table></form>
';
}else{
- Php met MySQL update - wat doe ik fout
-
03-11-2009, 15:00 #1
Tussendoor internet & marketing
- Berichten
- 297
- Lid sinds
- 17 Jaar
Php met MySQL update - wat doe ik fout
-
-
03-11-2009, 15:05 #2
- Berichten
- 394
- Lid sinds
- 15 Jaar
Even de query draaien in phpmyadmin zelf?
Dan krijg je een error erbij:)
-
03-11-2009, 15:09 #3
- Berichten
- 70
- Lid sinds
- 16 Jaar
Code:mysql_query($query) or die(mysql_error());
-
03-11-2009, 15:18 #4
Tussendoor internet & marketing
- Berichten
- 297
- Lid sinds
- 17 Jaar
Geen foutmelding te zien. Krijg netjes na het verzenden de melding: De opmerking is aangepast!
De update wordt wel uitgevoerd want de reeds aanwezige tekst in het record wordt verwijderd.
-
04-11-2009, 14:32 #5
Printcoach / Twikpress
- Berichten
- 46
- Lid sinds
- 18 Jaar
mis je niet de id van de opmerking van die zie ik niet zo snel staan in je form en update query
-
04-11-2009, 15:11 #6
- Berichten
- 231
- Lid sinds
- 17 Jaar
ID mist inderdaad, maar dan nog zou
Code:$query = "UPDATE tabel SET opmerkingen = '".$_POST['opmerkingen']."'";
Wat is dit nou weer, tekst wordt groen :p
-
04-11-2009, 15:21 #7
- Berichten
- 169
- Lid sinds
- 17 Jaar
"Vermoedelijk komt de input variable niet door?"
Dat is correct!
Via de link (binnen de <form> tags) wordt de inhoud van het formulier niet gesubmit.
(p.s. let ook even op de veiligheid (sql injecties)... maar dat terzijde)
-
04-11-2009, 15:32 #8
- Berichten
- 231
- Lid sinds
- 17 Jaar
Oeps, had 't form helemaal niet gezien.
Wat Peter zegt klopt inderdaad, je gebruikt GET als form verzendtype, maar verwijst naar een URL met variabelen erin. Die vars worden niet meegestuurd, wel als je POST gebruikt. Met GET zul je een aantal hidden input velden moeten aanmaken, in jouw geval dus:
PHP Code:<input name="item" value="bekijk" />
<input name="id" value="<?php echo $row['id']; ?>" />
<input name="aktie" value="editopmerking" />
-
04-11-2009, 22:28 #9
- Berichten
- 169
- Lid sinds
- 17 Jaar
Ha Jacob,
Mooi dat je het met mij eens bent, maar jouw verhaal klopt niet....
Het probleem zit 'm puur in deze link:
<a href="admin.php?item=bekijk&id='.$row ['id'].'&aktie=editopmerking">Update opmerkingen</a>
Wanneer op deze link wordt geklikt wordt geen van de formulier-elementen verzonden (om het even welke methode je gebruikt). Ook niet wat in hidden variabelen zit.
Om de formulierelementen te verzenden moet je een submit button gebruiken
<input type="submit" value="Submit" />
... of zoiets als
<a href="javascript:document.theForm.submit();">Submi t</a>
-
05-11-2009, 16:08 #10
- Berichten
- 231
- Lid sinds
- 17 Jaar
Ach, liep volgens mij een beetje te dromen ;). Had niet gezien dat de submit knop ontbrak.
Maar als ik me niet vergis worden GET variabelen in de actie URL in combinatie met een GET method formulier niet meegestuurd, wel met een FORM method formulier.
-
05-11-2009, 17:40 #11
- Berichten
- 169
- Lid sinds
- 17 Jaar
Loop je dan nog steeds te dromen : )
Waar zie jij dat de GET methode wordt gebruikt...
<form id="editopmerking" name="editopmerking" value="editopmerking" method="post" action="admin.php?item=bekijk&id='.$row['id'].'&aktie=editopmerking">
-
05-11-2009, 20:12 #12
- Berichten
- 231
- Lid sinds
- 17 Jaar
Haha ;)
Ik bedoel: de form actie URL is: admin.php?item=bekijk&id='.$row['id'].'&aktie=editopmerking . Die variabelen die in de URL staan (die met GET worden opgehaald, zo bedoelde ik dat), die worden dan toch niet meegestuurd als je ...
Laat maar, zat inderdaad nog steeds te dromen, was er echt van overtuigd dat er <form method="get" stond ;)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic