Avatar billede Slettet bruger
24. september 2008 - 15:11 Der er 3 kommentarer og
1 løsning

mysql_query returnerer ikke false

Hej eksperter,

Jeg har et problem med min hjemmeside. Generering af undersider sker dynamisk og i realtid og er styret af den medsendte parameter - f.eks. www.minside.dk/?location=parameter. Jeg vil så have PHP til at indlæse en fejlside, hvis den side, parameteren henviser til, ikke eksisterer. Dette gør jeg således:

if (!mysql_query("SELECT location FROM ".$Settings_Tables["pages"]." WHERE location='".$Page_Location."'"))
$Page_Location = $Settings_Error;

Problemet er bare, at min mysql_query aldrig returnerer false - heller ikke, når $Page_Location, der bestemmer målsiden, ikke er gyldig! Således indlæses slet ingenting, og siden bliver tom, hvor den burde vise fejlmeddelelsen. Jeg har testet med mysql_result på mit query og kommer rigtigt nok frem til, at query'et ikke er gyldigt (fordi MySQL ikke finder noget ud fra de medsendte parametre).

Derfor: Hvorfor returnerer min query ikke false?!
Avatar billede pidgeot Nybegynder
24. september 2008 - 15:21 #1
mysql_query skal kun returnere false hvis queryen ikke kunne *forstås*. Det har intet at gøre med om der var resultater.

Du skal lave en COUNT eller have det smidt gennem mysql_num_rows for at få at vide hvor mange rækker der kom tilbage.
Avatar billede Slettet bruger
24. september 2008 - 15:39 #2
Okay, det lyder jo meget fornuftigt. Smid lige et svar mens jeg kikker på det.
Avatar billede Slettet bruger
24. september 2008 - 15:40 #3
Og det virker med num_rows :) Tusind tak!
Avatar billede pidgeot Nybegynder
24. september 2008 - 15:41 #4
Værsgo :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester