LIMIT 6 en toch maar 1 resultaat
$query = mysql_query("SELECT * FROM clips GROUP BY uitvoerder LIKE '".chr($i)."%' ASC LIMIT 6");
het doet alles wat ik vraag (heel men script, ook dit) behalve wil ik dat het 6 rsultaten toont, maar hij toont er maar 1. hoe komt dit?
Dan is er maar 1 resultaat in je database?
Midas schreef op 04.06.2009 22:07:
Dan is er maar 1 resultaat in je database?
nope database staat vol van a tot z met meerdere uitvoerders per letter.
het komt erop neer dat hij maar 1 showt ipv 6..
Gewijzigd op 01/01/1970 01:00:00 door Sam Smekens
Gooi die limit er eens uit. En selecteer ook wat je wilt hebben. Sterretje is zo onhandig. Je database mag nu zelf bepalen wat ie terug geeft.
Hoe "fetch" je de resultaten? Of in andere woorden, wat is de code die na dit lijntje code staat, waarin de resultaten van de query worden weergegeven? Het zou kunnen dat er iets mis gaat in je while-lusje, of dat dat lusje ontbreekt :)
Zoiets ? Nog nooit gehoord van GROUP BY ... LIKE ...
Ik bedoelde meer hoe je code met mysql_fetch_watdanook($query) eruit ziet. Want die haalt maar 1 resultaat per keer terug, dus die moet je op de goeie manier meerdere malen aanroepen. Daar zou het gemakkelijk fout kunnen gaan.
Anders probeer je echo $query; en dan kopieer en plak je je query in je database sql code om te kijken wat daar uit komt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$select = "SELECT * FROM clips WHERE uitvoerder LIKE '".chr($i)."%' GROUP BY uitvoerder ASC limit 0,4";
$ql = mysql_query($select) or die (mysql_error());
$seel = "SELECT * FROM clips GROUP BY uitvoerder LIKE '".chr($i)."%' ";
$qw = mysql_query($seel) or die (mysql_error());
while($list = mysql_fetch_object($qw)) {
if(mysql_num_rows($ql) == 0){
$artiest = "Er zijn geen Artiesten gevonden";
}
else{
$artiest = "$list->uitvoerder";
}
}
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"10%\"><div align=\"center\"><img src=\"afbeeldingen/alfabet/".chr($i).".gif\" alt=\"\"></div></td>
<td width=\"80%\"><div align=\"center\">$artiest</div></td>
<td width=\"10%\"><div align=\"center\"><img src=\"http://www.bselout.nl/bselout/images/klik.gif\" alt=\"\"></div></td>
</tr></table>";
}
?>
$select = "SELECT * FROM clips WHERE uitvoerder LIKE '".chr($i)."%' GROUP BY uitvoerder ASC limit 0,4";
$ql = mysql_query($select) or die (mysql_error());
$seel = "SELECT * FROM clips GROUP BY uitvoerder LIKE '".chr($i)."%' ";
$qw = mysql_query($seel) or die (mysql_error());
while($list = mysql_fetch_object($qw)) {
if(mysql_num_rows($ql) == 0){
$artiest = "Er zijn geen Artiesten gevonden";
}
else{
$artiest = "$list->uitvoerder";
}
}
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"10%\"><div align=\"center\"><img src=\"afbeeldingen/alfabet/".chr($i).".gif\" alt=\"\"></div></td>
<td width=\"80%\"><div align=\"center\">$artiest</div></td>
<td width=\"10%\"><div align=\"center\"><img src=\"http://www.bselout.nl/bselout/images/klik.gif\" alt=\"\"></div></td>
</tr></table>";
}
?>
Eerlijk gezecht heb ik nog nooit gehoort van GROUP BY... Kun je niet beter WHERE proberen?
Gewijzigd op 01/01/1970 01:00:00 door Sam Smekens
En @ Sam haal chr(weetikveelwathierstond..) eens weg en maak er mysql_real_escape_string(weetikveelwathierstond..) van.
Ik weet niet precies wat je wilt bereiken, maar zie de handleiding in mijn vorige post voor een uitleg over het juiste gebruik van GROUP BY. Dan zie je dat het heel iets anders doet, dan jij nu probeert.
Blanche schreef op 05.06.2009 22:40:
Sam, zoals ik zei die GROUP BY klopt niet. De syntax GROUP BY ... LIKE ... bestaat gewoon niet in SQL! Vandaar dat je een foutmelding krijgt.
Ik weet niet precies wat je wilt bereiken, maar zie de handleiding in mijn vorige post voor een uitleg over het juiste gebruik van GROUP BY. Dan zie je dat het heel iets anders doet, dan jij nu probeert.
Ik weet niet precies wat je wilt bereiken, maar zie de handleiding in mijn vorige post voor een uitleg over het juiste gebruik van GROUP BY. Dan zie je dat het heel iets anders doet, dan jij nu probeert.
Die syntax bestaat wel in mysql!
en trouwens ik krijg geen foutmeldingen..
dat van danny ga ik eens proberen..
Blanche heeft helaas toch echt gelijk. Misschien dat je het verward met GROUP BY ... HAVING , maar dat is totaal anders. Op zich is de syntax makkelijk te beredeneren, aangezien GROUP BY simpelweg het resultaat van de select gaat bewerken, dus dat zou achter je WHERE, of in dit geval LIKE, wat in dezelfde categorie valt, komen.
Sam Smekens schreef op 06.06.2009 09:30:
Dan mag jij mij eens uitleggen wat je met die query probeert te bereiken. Want hoe je het ook wendt of keert, die query is fout! Als je de moeite had genomen om die link die ik eerder al gaf eens door te lezen, had je nu al geweten waarom...Die syntax bestaat wel in mysql!
Maar goed, als jij eigenwijs verder wilt gaan met queries die niet kloppen en niets doet met de adviezen die gegeven worden, is dat natuurlijk jouw keus. Je applicatie zul je er alleen niet werkend mee krijgen.
verticaal in tabellen aan de linkerkant. in het midden komen 5 artiesten voor elke letter. aan de rechterkant komt er een button 'bekijk'.
hij mag natuurlijk niet 5 keer uitvoerder,uitvoerder,uitvoerder,uitvoerder,uitvoerder tonen dus gebruik ik GROUP BY zodat hij 5 verschillende artiesten neemt (als er zoveel in db zitten).
Wat is dan wel de juiste oplossing? Als je voor een bepaald veld unieke waarden wilt ophalen, kun je DISTINCT gebruiken. Maar goed, doe jezelf een plezier en lees nu eerst dit artikel eens door. Daarin wordt het hele verhaal dat ik in bovenstaande kort samenvat nog eens duidelijk uitgelegd.
ps. En dan hebben we het nog niet eens over de miraculeuze GROUP BY ... LIKE ... syntax waarvan jij beweert dat deze correct is, maar waarvan dat zoals eerder al gezegd niet het geval is.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Wees niet zo eigenwijs en leer van ze. Daarom kom je hier toch?
$select = "SELECT id, uitvoerder FROM clips WHERE uitvoerder LIKE 'm%' GROUP BY uitvoerder";
$query = mysql_query($select) or die (mysql_error());
while ($show = mysql_fetch_object($query)) {
echo "$show->uitvoerder";
}
*zo werkt het en echot hij alles mooi achter elkaar
als ik echo verander in vb $test = $show->uitvoerder;
toont hij maar 1