Avatar billede fizk Nybegynder
04. juni 2006 - 10:28 Der er 7 kommentarer og
1 løsning

Sql forespørgsel med et array?

Hej eksperter!
Min gæstebog er blevet overspammet og jeg har forsøgt at lave alt muligt for at undgå dette.
Mit seneste forsøg er en liste over ord, der ikke må indgå i teksten/navnet.
Problemet er bare at jeg synes min kode er ved at være ret uoverskueligt, da jeg har
SELECT * FROM `guest_book` WHERE `besked` NOT LIKE '%poker%' AND NOT LIKE `%porn%` (osv. osv.)
Kan man på en eller anden måde ikke bare lave et array som den skal vælge ud fra?
$forbidden = array("poker","porn");
SELECT * FROM `guest_book` WHERE `besked` NOT LIKE '$foribdden' ?
Avatar billede Slettet bruger
04. juni 2006 - 11:06 #1
Du kan gøre sådan noget:

$forbidden = array("porn", "viagra");

Og så slå det sammen til en streng:

for($i=0;$i<count(forbidden);$i++) {
    $streng .= "NOT LIKE %".$forbidden[$i]."% ";
}

echo $streng;

Der skal dog lige fedtes med noget om sql keywordet "AND".

--pacroon
Avatar billede nielle Nybegynder
04. juni 2006 - 11:23 #2
Jeg ville nu vælge at bruge implode() i stedet for en for-løkke:

$forbidden = array("porn", "viagra");

$streng = implode("%' AND NOT LIKE '%", $forbidden);
$streng = "NOT LIKE '%" . $streng . "%'";

echo $streng;

På den måde klares AND også med det samme.

Allerhelst ville jeg dog forsøge at slippe af med spam'en *inden* at den overhovedet kommer i databasen. :^)
Avatar billede nielle Nybegynder
09. juni 2006 - 11:28 #3
Hvad med noget respons?
Avatar billede fizk Nybegynder
09. juni 2006 - 21:10 #4
Hov ... Siden var nede da jeg fik svar, så jeg havde glemt alt om det her, beklager...
Avatar billede fizk Nybegynder
09. juni 2006 - 21:11 #5
Nielle, smid lige et svar ^^
Avatar billede nielle Nybegynder
10. juni 2006 - 01:55 #6
Svar :^)
Avatar billede nielle Nybegynder
19. juni 2006 - 18:02 #7
Så mangler du bare at acceptere svaret :^)
Avatar billede nielle Nybegynder
20. juni 2006 - 17:34 #8
Tak for point :^)
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