LIMIT 6 en toch maar 1 resultaat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Sam Smekens

Sam Smekens

04/06/2009 22:00:00
Quote Anchor link
Ik heb het volgende:

$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?
 
PHP hulp

PHP hulp

25/11/2024 05:19:30
 
Midas

Midas

04/06/2009 22:07:00
Quote Anchor link
Dan is er maar 1 resultaat in je database?
 
Sam Smekens

Sam Smekens

04/06/2009 22:09:00
Quote Anchor link
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
 

04/06/2009 22:38:00
Quote Anchor link
Is dat wel zo?
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.
 
Jelmer -

Jelmer -

04/06/2009 23:08:00
Quote Anchor link
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 :)
 
Ed

Ed

04/06/2009 23:14:00
Quote Anchor link
$query = mysql_query("SELECT * FROM clips GROUP BY uitvoerder WHERE uitvoerder LIKE '".chr($i)."%' ASC LIMIT 6");

Zoiets ? Nog nooit gehoord van GROUP BY ... LIKE ...
 
Joren de Wit

Joren de Wit

04/06/2009 23:15:00
Quote Anchor link
Wat doet die GROUP BY in je query? Zoals hij daar staat, gebruik je hem in ieder geval niet juist!

Zie ook deze tutorial over het juiste gebruik van GROUP BY.
 
Jelmer -

Jelmer -

04/06/2009 23:45:00
Quote Anchor link
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.
 
Kitty N

kitty N

05/06/2009 09:03:00
Quote Anchor link
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.
 
Sam Smekens

Sam Smekens

05/06/2009 21:17:00
Quote Anchor link
dit is 'volledige' code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>"
;        
}

 
?>
 
Tim Kampherbeek

Tim Kampherbeek

05/06/2009 21:25:00
Quote Anchor link
Eerlijk gezecht heb ik nog nooit gehoort van GROUP BY... Kun je niet beter WHERE proberen?
 
Sam Smekens

Sam Smekens

05/06/2009 21:34:00
Quote Anchor link
GROUP BY als je dat niet kent kan je me al niet helpen, toch bedankt..
Gewijzigd op 01/01/1970 01:00:00 door Sam Smekens
 

05/06/2009 21:52:00
Quote Anchor link
Tim, GROUP BY is totaal iets anders als WHERE dus stel niet voor om dat te gebruiken als je niet eens weet wat GROUP BY is..

En @ Sam haal chr(weetikveelwathierstond..) eens weg en maak er mysql_real_escape_string(weetikveelwathierstond..) van.
Gewijzigd op 01/01/1970 01:00:00 door
 
Joren de Wit

Joren de Wit

05/06/2009 22:40:00
Quote Anchor link
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.
 
Sam Smekens

Sam Smekens

06/06/2009 09:30:00
Quote Anchor link
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.


Die syntax bestaat wel in mysql!
en trouwens ik krijg geen foutmeldingen..
dat van danny ga ik eens proberen..
 
Afra ca

Afra ca

06/06/2009 10:50:00
Quote Anchor link
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.
 
Joren de Wit

Joren de Wit

06/06/2009 13:22:00
Quote Anchor link
Sam Smekens schreef op 06.06.2009 09:30:
Die syntax bestaat wel in mysql!
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...

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.
 
Sam Smekens

Sam Smekens

06/06/2009 17:07:00
Quote Anchor link
ik heb een pagina op die pagina wordt er het alfabet getoond van a tot z
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).
 
Joren de Wit

Joren de Wit

06/06/2009 17:17:00
Quote Anchor link
Juist en lees nu die link die ik gaf eens door. Dan zul je dus zien dat GROUP BY in deze situatie NIET de juiste aanpak is. MySQL is de enige database die, mits niet goed ingesteld, deze query zal accepteren en daarmee random resultaten terug zal geven. Met andere woorden, jij weet nooit wat je nu uit je database selecteert! Andere databases (en MySQL ook als je goede instellingen gebruikt) zullen deze query dan ook direct affakkelen en jou met een mooie foutmelding laten 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
 
Pieter Jansen

Pieter Jansen

06/06/2009 17:50:00
Quote Anchor link
Beste Sam, waarom luister je niet naar Blanche? Als er iemand is hier die verstand heeft van SQL, dan is het Blanche of pgFrank. Als ze jou vertellen dat het niet kan, kun je van uit gaan dat het ook niet kan. In al die tijd dat ik hier op deze website zit, heb ik hen nog nooit en te nimmer een verkeerd antwoord zien geven.

Wees niet zo eigenwijs en leer van ze. Daarom kom je hier toch?
 
Sam Smekens

Sam Smekens

06/06/2009 18:22:00
Quote Anchor link
k, ik ben eigenwijs, k,ik heb alles gelezen, k, ik heb DISTINCT gebruikt.. WERKT NIET..

$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
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.