Ga naar inhoud

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


Aanbevolen berichten

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
Link naar reactie
[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).
Link naar reactie
[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
Link naar reactie
[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 ;)
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...