[php & mysql] query WHERE werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • samo
  • Registratie: Juni 2003
  • Laatst online: 18:50

samo

yo/wassup

Topicstarter
Ik heb gezocht en geprobeerd maar ik kom er maar niet uit!

doel
ik probeer een website te maken waar ik bepaalde instellingen uit een mysql database haal. Voor dit specefieke vraagstuk probeer ik de paginanaam (word 2x in de pagina gebruikt) uit de db te halen. De db heeft 3 kolommen:
table_id page_id value
01 01_xA blaat
iedere pagina die ik weergeef heeft zijn eigen page_id (in de vorm van 01_xA, 05_xC enz...) en de paginanaam (title) wordt uit de database gehaald aan de hand van de page_id. Dus voor 01_xA zou dat "blaat" moeten zijn.

aanpak
ik verbind met de database door de connectie op te slaan in een string, die ik in een included bestand eerder al laad... dit gaat allemaal goed. Ik verbind zonder problemen met de mysql database (met dank aan een php boek) en verbind ook met de tabel. Ik kan zelfs een query runnen maar loop vast zodra ik WHERE gebruik.
voorbeeld:
*ter informatie de strings zijn gedefinieerd: $if[full] = 01_xA en $global_dbh is de db connectie.*
PHP:
1
2
3
4
5
6
  $page_query = "SELECT `value` FROM `page_name` WHERE `page_id` = `$id[full]`";
  $result_id = mysql_query($page_query, $global_dbh)
    or die(mysql_error());
  $result_fields = mysql_fetch_array($result_id);

  $page_name[this] = $result_fields[0];

als ik deze code uitvoer krijg ik de melding:
Unknown column '*' in 'where clause'
maar als ik dezelfde code uitvoer zonder de WHERE statement, dan wordt mooi de eerste waarde in de database weergegeven (dat moet natuurlijk niet)...

ik heb eigenlijk geen flauw idee wat ik mis doe met die where statement...

omgeving
ik test dit via een php pakket op een windows nt machine, met apache, php 4.3 en mysql (firepages)... dit lijkt goed te werken verder omdat ik dus wel een query kan draaien zonder de where statement...


Kan (en wil) iemand mij helpen???

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Echo de query eens; hoe luidt deze?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Wat gebeurt er als je de variable indent?

edit:in je query heb je id ipv: $if[full] = 01_xA

[ Voor 40% gewijzigd door djluc op 17-07-2003 10:23 ]


Acties:
  • 0 Henk 'm!

  • samo
  • Registratie: Juni 2003
  • Laatst online: 18:50

samo

yo/wassup

Topicstarter
gorgi_19 schreef op 17 juli 2003 @ 10:22:
Echo de query eens; hoe luidt deze?
SELECT `value` FROM `page_name` WHERE `page_id` = `01_xA`
djluc schreef op 17 juli 2003 @ 10:22:
Wat gebeurt er als je de variable indent?

edit:in je query heb je id ipv: $if[full] = 01_xA
dan krijg ik precies de zelfde melding...

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
voor dit query eens uit:
SELECT value FROM page_name WHERE page_id = '01_xA'

Als je geen gereserveerde namen als kolom en tabelnamen gebruikt hoef je deze niet te quoten. Verder heb jij andere quotes gebruikt dan ik altijd gebrui, jij gebruik waarschijnlijk die op de toets naast de 1, ik gebruik degene onder de dubbele aanhalingstekens.

[ Voor 68% gewijzigd door djluc op 17-07-2003 10:29 ]


Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Probeer het zo eens:
PHP:
1
$page_query = "SELECT value FROM page_name WHERE page_id = '". $id[full] ."'";


edit:
djluc was me voor :|

[ Voor 27% gewijzigd door Alex op 17-07-2003 10:30 ]

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 17-07 14:45
samo-arne schreef op 17 July 2003 @ 10:24:
[...]


SELECT `value` FROM `page_name` WHERE `page_id` = `01_xA`


[...]

dan krijg ik precies de zelfde melding...
01_xA is een string, die moet dus tussen quotes ...

nu probeert mysql in je WHERE statement te kijken of kolom page_id gelijk is aan kolom 01_xA, en die bestaat dus niet...

edit:

Wat er boven mij al gezegd wordt dus... :)

[ Voor 8% gewijzigd door RupS op 17-07-2003 10:29 ]


Acties:
  • 0 Henk 'm!

  • samo
  • Registratie: Juni 2003
  • Laatst online: 18:50

samo

yo/wassup

Topicstarter
DOH!
dat was hem!

nu voel ik me heeeeeeeeeeeeeel stom

ik gebruikte namelijk `` als tekens maar met ' ' werkt het wel...

dank u!!!


* zoekt de DUMBO sticker weer uit zn ladekast en plakt deze op zn voorhoofd *

[ Voor 27% gewijzigd door samo op 17-07-2003 10:30 ]

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Alex de Groot schreef op 17 July 2003 @ 10:29:
Probeer het zo eens:
PHP:
1
$page_query = "SELECT value FROM page_name WHERE page_id = '". $id[full] ."'";
That's what I said B)

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
djluc schreef op 17 July 2003 @ 10:30:
[...]

That's what I said B)
Je was me precies voor.
Overigens vind ik dit wel een erg basic iets. Ik ben niet te beroerd een query opnieuw te schrijven maar, ik denk dat de topicstarter op www.mysql.com zat informatie vind om eruit te komen... Of anders koop een boek met SQL-uitleg erin. :)

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • samo
  • Registratie: Juni 2003
  • Laatst online: 18:50

samo

yo/wassup

Topicstarter
Alex de Groot schreef op 17 juli 2003 @ 10:32:
[...]


Je was me precies voor.
Overigens vind ik dit wel een erg basic iets. Ik ben niet te beroerd een query opnieuw te schrijven maar, ik denk dat de topicstarter op www.mysql.com zat informatie vind om eruit te komen... Of anders koop een boek met SQL-uitleg erin. :)
ok daar moet ik je (achteraf) gelijk in geven. Het is wel een erg basic fout die ik maak...
Maar het is vrij moeilijk het verschil te zien tussen ` en ' als je grote lappen tekst moet lezen, en deze fout zit dus erg verstopt...
Ik had ook de php handleiding van php.net doorgespit maar werd daar ook niet veel wijzer van...
Maar ik geef toe, het is erg stom van mij...
dank iedereen in ieder geval

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana

Pagina: 1