21. april 2009 - 19:51Der er
8 kommentarer og 2 løsninger
While løkke
Hej Eksperter. Jeg har et lille problem med en while løkke. For lige at vise koden med det samme:
if($_GET[kuntitler]!="") { if($_GET[kategori1]=="on" OR $_GET[kategori2]=="on" OR $_GET[kategori3]=="on" OR $_GET[kategori4]=="on" OR $_GET[kategori4]=="on" OR $_GET[kategori5]=="on") { $thisin = "AND titlenavn LIKE '%$_GET[titlenavn]%' "; } else { $thisin = "titlenavn LIKE '%$_GET[titlenavn]%' "; } } else { if($_GET[kategori1]=="on" OR $_GET[kategori2]=="on" OR $_GET[kategori3]=="on" OR $_GET[kategori4]=="on" OR $_GET[kategori5]=="on" OR $_GET[kategori6]=="on") { $thisin = "AND titlenavn LIKE '%$_GET[titlenavn]%' OR info LIKE '%$_GET[titlenavn]%' OR andetinfo LIKE '%$_GET[titlenavn]%' "; } else { $thisin = "titlenavn LIKE '%$_GET[titlenavn]%' OR info LIKE '%$_GET[torrentname]%' OR andetinfo LIKE '%$_GET[titlenavn]%' "; } }
$select_sange = mysql_query("SELECT * FROM sange WHERE ".$queryy1."".$queryy2."".$queryy3."".$queryy4."".$queryy5."".$queryy6."".$thisin." ORDER BY tilfojettid DESC LIMIT 30"); while($row_sange=mysql_fetch_array($select_sange)) {
Mine $queryy1,$queryy2 osv osv er noget længere oppe i koden som afgører om hvor mange "$queryy6 = "OR kategori = 'Andet'" osv. der skal på. Når jeg fjerner ".$thisin." fra min while løkke finder den fint udelukkende det der ligger i de kategorier, men når jeg sætter $thisin på så selvom jeg sætter hak i kategori2, og sangen ligger i kategori1 så er den fuldstændig ligeglad med kategorierne, dog viser den fint hvis der ligger noget i "titlenavn", "info" eller "andetinfo" ... hvordan kan jeg gøre således at begge ting fungere på samme tid?
- Håber jeg har kunnet forklare det ordenligt, synes selv det lyder lidt forvirrende, men ved ikke hvordan det kan forklares bedre. I er selvfølgelig velkomne til at spørge ind til det, hvis der er noget i er i tvivl om.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Start med at sætte "or die((mysql_error())" efter din mysql_query().
$select_sange = mysql_query("SELECT * FROM sange WHERE ".$queryy1."".$queryy2."".$queryy3."".$queryy4."".$queryy5."".$queryy6."".$thisin." ORDER BY tilfojettid DESC LIMIT 30") or die((mysql_error());
Dernæst prøv at udskrive den fulde sql sætning som du får dannet:
echo "SELECT * FROM sange WHERE ".$queryy1."".$queryy2."".$queryy3."".$queryy4."".$queryy5."".$queryy6."".$thisin." ORDER BY tilfojettid DESC LIMIT 30";
Splazz -> Jo det gør. Den sætter AND på, hvis der er noget checked af, den sætter ikke noget på hvis feltet "alle" er checked.
Får udskrevet:
SELECT * FROM sange WHERE kategori = 'Videolyd' AND title LIKE '%pink%' OR info LIKE '%pink%' OR andetinfo LIKE '%pink%' ORDER BY tilfojettid DESC LIMIT 30
Lige for at give et eksempel mere, hvis der er noget checked af:
SELECT * FROM sange WHERE kategori = 'Videolyd' OR kategori = 'apxlyd' OR kategori = 'badlyd' AND title LIKE '%pink%' OR info LIKE '%pink%' OR andetinfo LIKE '%pink%' ORDER BY tilfojettid DESC LIMIT 30
SELECT * FROM sange WHERE (kategori = 'Videolyd' OR kategori = 'apxlyd' OR kategori = 'badlyd') AND (title LIKE '%pink%' OR info LIKE '%pink%' OR andetinfo LIKE '%pink%') ORDER BY tilfojettid DESC LIMIT 30
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.