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 ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og 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.