anoniem Geplaatst: 23 juni 2003 Delen Geplaatst: 23 juni 2003 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 Quote Link naar reactie
anoniem Geplaatst: 23 juni 2003 Auteur Delen Geplaatst: 23 juni 2003 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 Link naar reactie
anoniem Geplaatst: 24 juni 2003 Auteur Delen Geplaatst: 24 juni 2003 [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 Link naar reactie
anoniem Geplaatst: 24 juni 2003 Auteur Delen Geplaatst: 24 juni 2003 [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 Quote Link naar reactie
anoniem Geplaatst: 24 juni 2003 Auteur Delen Geplaatst: 24 juni 2003 [quote:36bc7bd04b="BasHamar"][quote:36bc7bd04b="InZane"]De var hoef je niet tussen quotes (') te zetten in dit geval (getal).[/quote:36bc7bd04b]Correctie, je moet de variabele[b:36bc7bd04b]naam[/b:36bc7bd04b] [i:36bc7bd04b]altijd[/i:36bc7bd04b] 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[/quote:36bc7bd04b] Ik had het niet over de verwijzing in de array (die quotes moeten altijd ja), maar over z'n sql query. Hij had in principe eerst dit staan: WHERE id = 'getal' Die quotes om [b:36bc7bd04b]getal[/b:36bc7bd04b] hoeven niet. Sorry dat ik een beetje onduidelijk was ;) Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen