Avatar billede majbom Novice
20. februar 2004 - 11:38 Der er 13 kommentarer og
1 løsning

while løkke med array

hej eksperten

jeg har et array, som jeg gerne vil lave en sql-sætning ud fra, men jeg kan ikke helt greje den...

f.eks. har vi arrayet med følgende indhold:
let
mellem
svær

og så skulle den kunne generere følgende sætning:
$sqlsog = indhold LIKE '%let%' AND indhold LIKE '%mellem%' AND indhold LIKE '%svær%';

hvis i forstår!

pft
Avatar billede codebase Praktikant
20. februar 2004 - 11:45 #1
er det sådan her:
array[0] = let
array[1] = mellem
array[2] = svær

Hvordan ser din database ud?
Avatar billede majbom Novice
20. februar 2004 - 11:50 #2
ja, det er det jeg mener..

hvad mener du med hvordan min db ser ud?

//splazz
Avatar billede detox Nybegynder
20. februar 2004 - 11:50 #3
Her et forslag:

$arr = array("let", "mellem", "svær");
$query = "select * from tabel where";
foreach ($arr as $item) {
    $query .= " indhold like '%$item%' and";
}
$query = substr($query, 0, -4);
Avatar billede detox Nybegynder
20. februar 2004 - 11:51 #4
Men er du sikker på det ikke skal være 'OR' istedet for 'AND'?
Avatar billede Slettet bruger
20. februar 2004 - 11:55 #5
Du skal vel bare sige

<?

$dit_array = Array("let","mellem","svær");

$antal = count($dit_array);

foreach($dit_array AS $element) {
$sql[] = "indhold LIKE '%" . $element . "%' ";
}

$startsql = "SELECT * FROM etellerandet WHERE ";
$sql2 = implode("AND ", $sql);
echo $startsql . $sql2;

?>
Avatar billede xyborx Nybegynder
20. februar 2004 - 11:56 #6
$sqlsog='indhold LIKE \'%'.implode('%\' AND indhold LIKE \'%',$array).'%\'';

Hvis ellers jeg har udtænkt det rigtigt, vil et array som det codebase nævner give følgende:
indhold LIKE '%let%' AND indhold LIKE '%mellem%' AND indhold LIKE '%svær%'
Avatar billede Slettet bruger
20. februar 2004 - 11:57 #7
Mange forslag :)
Avatar billede majbom Novice
20. februar 2004 - 12:04 #8
øøh.. letter forvirret :)

der skal både være mulighed for at vælge mellem 'and' og 'or', men det kan jeg godt finde ud af... det her er bare et eksempel...

ville det nemmeste ikke være at bruge detox's forslag?

//splazz
Avatar billede Slettet bruger
20. februar 2004 - 12:15 #9
Ikke nødvendigvis :)

at bruge substr er en hurtig løsning, men når du vil bytte ud med OR skal du ændre den fra -4 til -3

xyborgx's er den korteste, men har ikke testet om den virker.
Avatar billede detox Nybegynder
20. februar 2004 - 12:23 #10
xyborx -> Smart!
Avatar billede majbom Novice
20. februar 2004 - 12:23 #11
ok...

-> xyborx - ved du om det virker, eller mener du bare at det burde virke? :)

//splazz
Avatar billede detox Nybegynder
20. februar 2004 - 12:28 #12
xyborx forslag virker fint ;o)
Avatar billede majbom Novice
20. februar 2004 - 12:29 #13
ok... så takker jeg mange gange!
Avatar billede xyborx Nybegynder
20. februar 2004 - 13:17 #14
Så lægger jeg da lige et svar. Brugte selv implode engang til at lave noget søge-halløj :)
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