Avatar billede qub- Novice
08. december 2011 - 19:59 Der er 3 kommentarer og
1 løsning

Select, if Null - Korrekt?

Undskyld den kryptiske overskrift..

Jeg skal tælle hvor mange rows i en tabel der er med specifik id.
"søge-iderne" får jeg fra en variabel der fx ku så således ud:
4,32,67

Og min sql funktion ser så således ud:
$totalvagterResult = mysql_query("SELECT id FROM $Troskilde_vagter WHERE id IN ($vagter)") or die(mysql_error());

Eftersom det ikke er påkrævet at $vagter skal være udfyldt får jeg selvfølgelig mysql error, og det har jeg så prøvet at komme udenom ved at gøre følgende:

$totalvagterResult = mysql_query("SELECT id FROM $Troskilde_vagter WHERE id IN ($vagter)");
if (!$totalvagterResult) {
    $count_totalvagter = "0";
} else {
$count_totalvagter = mysql_num_rows($totalvagterResult);
}


Mit spørgsmål så egentlig om dette er den korrekte måde at gøre det på, og om der evt. er en bedre måde? For det ligner for mig selv at se, en ret stor overspringshandling..??


// Casper
Avatar billede erikjacobsen Ekspert
08. december 2011 - 20:38 #1
Jeg ville bruge en if-sætning på $vagter, for at se om den er tom, inden SQL-sætningen.

Bemærk også at det ser ud som om du er helt åben for SQL-injection, med mindre du kontrollerer at input faktisk er kommaseparerede tal.
Avatar billede qub- Novice
08. december 2011 - 20:44 #2
årh ja selvfølgelig.. - hvorfor har jeg ik tænkt over noget så simpelt..

Hmm er ik helt med på hvad du mener..?
Men jeg er fuldstændig sikker på at vagter indeholder en af følgende:
"" - Er tom
"2,3"
"2,3," som ovenover, med et afsluttende ,


Men smid et svar hvis du vil ha point
Avatar billede erikjacobsen Ekspert
08. december 2011 - 20:46 #3
Nej tak. Jeg samler slet ikke på point. Svar selv, og accepter dit eget svar.
Avatar billede qub- Novice
08. december 2011 - 20:49 #4
tak for hjælpen !
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