Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Ik doe iets fout maar weet niet wat...

4 antwoorden
  • Hallo, Ik heb een klein tabelletje met de volgende indeling: CREATE TABLE prod ( name varchar(100) NOT NULL default "", nr int(5) NOT NULL, descr text NOT NULL, PRIMARY KEY (nr), UNIQUE KEY nr (nr), UNIQUE KEY name (name) ) TYPE=MyISAM COMMENT="Products"; Ik heb een werkend php programma om data toe te voegen aan de tabel. Ik heb ook een werkend programma om alle records als een lijst te tonen. Ik probeer nu een programma te maken die een specifiek record toont. Ik wil die routine als volgt aanroepen: http://localhost/pdc/listprod.php?prodnr=3 Mijn progje ziet er zo uit: <? # standaard routine met logingegevens include 'db.php'; ?> <html> <head> <title>Products/title> </head> <body> <? # setup SQL statement $sql = " SELECT * FROM prod WHERE nr = '$prodnr'"; # SQL statement uitvoeren $rs = mysql_query($sql, $cid); if (mysql_error()) { print "Database Error: $sql " . mysql_error(); } # resultaat tonen print "<p><b>Products</b><p>\n"; print "<table border=0>"; $name = $row["name"]; $nr = $row["nr"]; $descr = $row["descr"]; print "<table border=0>"; print "<tr><td>$name</td><td>$nr</td><td>$descr</td><tr>"; print "</table>"; ?> </body> </html> Er komt echter geeneen record naar voren terwijl een product met nr=3 wel degelijk bestaat (gechecked met PHPMYADMIN). Wat doe ik verkeerd? Alvast bedankt, Webguy
  • Vervang $prodnr een met $_GET["prodnr"], waarschijnlijk is dat alles. En voortaan even eerst zoeken op dit forum, het is al meerdere malen aan bod geweest. - Bas
  • [quote:c3ec29dec0="webguy"] [code:1:c3ec29dec0] # setup SQL statement $sql = " SELECT * FROM prod WHERE nr = '$prodnr'"; [/code:1:c3ec29dec0] [/quote:c3ec29dec0] Wordt dus dit: [code:1:c3ec29dec0] $sql = " SELECT * FROM prod WHERE nr = $_GET['prodnr']"; [/code:1:c3ec29dec0] De var hoef je niet tussen quotes (') te zetten in dit geval (getal).
  • [quote:80542c98d2="InZane"]De var hoef je niet tussen quotes (') te zetten in dit geval (getal).[/quote:80542c98d2]Correctie, je moet de variabele[b:80542c98d2]naam[/b:80542c98d2] [i:80542c98d2]altijd[/i:80542c98d2] tussen quotes zetten! Dit is niet alleen een voorschrift van PHP maar ook een goede manier om in enige mate te garanderen dat het script bij toekomstige versies van PHP blijft werken. Nogmaals: ook al bevat de variabele een getal, de verwijzing in de array is aan de hand van een naam (string) en moet tussen aanhalingstekens. Het zal ook werken zonder, maar dat kan ik de toekomst veranderen. - Bas

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.