Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1582 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  LIMIT qui ne marche pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

LIMIT qui ne marche pas

n°219609
ludo2604
kitsch' me if u can
Posté le 24-09-2002 à 17:52:28  profilanswer
 

salut,
 
j'ai un moteur de recherche mais sur FREE il ne marche car il faut limiter le nombre de reponses...
Je veux donc limiter dans les requetes
 
J'ai essayé en local avec 5
mais ça ne marche pas pour le count :
 

Code :
  1. $sql = 'SELECT COUNT(*) AS qte FROM ';
  2.     $sql .= artistes . ' WHERE ';
  3.     $sql .= 'nom LIKE "%' . $search . '%"';
  4.     $sql .='LIMIT 5 ';
  5.     $p = mysql_query($sql);
  6.     $total1 = mysql_result($p,"0","qte" );


 
 [:zoutte]


---------------
Make Portraits, Not War!  
mood
Publicité
Posté le 24-09-2002 à 17:52:28  profilanswer
 

n°219619
Castor666
:°)=
Posté le 24-09-2002 à 18:06:36  profilanswer
 

Code :
  1. $sql = "SELECT COUNT(*) AS qte FROM artistes WHERE nomLIKE '%$search . '%' LIMIT 0,[g]5 ';
  2. $p = mysql_query($sql);
  3. $total1 = mysql_result($p,"0","qte" );


je croit que c'est ce que tu cherche ;-)


---------------
Mon blog de nerd...
n°219632
ludo2604
kitsch' me if u can
Posté le 24-09-2002 à 18:19:44  profilanswer
 

merci mais nan ça ne marche pas...
Si tu regardes bien, le 0 est deja dans le mysql_result :/


---------------
Make Portraits, Not War!  
n°219637
--greg--
Posté le 24-09-2002 à 18:23:23  profilanswer
 

:heink:  
select count(*) from truc  
ça te renvoie jamais qu'un seul record hein...


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°219655
Castor666
:°)=
Posté le 24-09-2002 à 19:05:51  profilanswer
 

ah oui, effectivement ! :??:


---------------
Mon blog de nerd...
n°219678
ludo2604
kitsch' me if u can
Posté le 24-09-2002 à 20:15:11  profilanswer
 

--greg-- a écrit a écrit :

 :heink:  
select count(*) from truc  
ça te renvoie jamais qu'un seul record hein...




 
??
ça veut dire que je peux pas limiter...
 
bein ya bien un moyen :
en fait, j'ai une requete pour "artistes" et une requete pour "chansons".
 
et sur la page je veux que ça soit afficher : 18 resultats trouvés etc...
 
bon ça marche mais comme j'ai limité la requete "artistes" et "chansons" il faut aussi que je limit la requete du count nan ?


---------------
Make Portraits, Not War!  
n°219686
mrbebert
Posté le 24-09-2002 à 20:31:03  profilanswer
 

Le 'count', ca ne renvoie qu'une seule ligne, contenant le nombre de lignes qu'aurait eu le résultat si t'avais pas mis le count.

n°219710
ludo2604
kitsch' me if u can
Posté le 24-09-2002 à 21:10:13  profilanswer
 

bon faut m'aider alors si pas moyen de cette maniere
 
je repete
 
j'ai 2 requetes pour un moteur de recherche sur "artistes" et "chansons".
hop ca marche jaffiche les resultats...
ensuite jaffiche le nombres de resultats à ces 2 requetes.
 
par exemple:

Citation :

38 resultats trouvés à votre recherche


 
là tt marche bien
 
mais à cause de free, il faut que je limite ces 2 requetes...
mais le nombre de resultat lui il va compter normalement le tout puisque je n'ai rien touché
 
et c là ou je blok justement!
 
zavez compris  [:xx_xx]


Message édité par ludo2604 le 24-09-2002 à 21:12:04

---------------
Make Portraits, Not War!  
n°219717
mrbebert
Posté le 24-09-2002 à 21:22:56  profilanswer
 

Si je comprends bien, tu veux afficher par blocs le résultat d'une requête (en plusieurs pages donc), tout en indiquant le nombre total de champs concernés (la somme des champs de toutes les pages) ?
Ca, je sais pas faire, mais ca m'intéresse :(

n°219728
ludo2604
kitsch' me if u can
Posté le 24-09-2002 à 21:38:04  profilanswer
 

mrbebert a écrit a écrit :

Si je comprends bien, tu veux afficher par blocs le résultat d'une requête (en plusieurs pages donc), tout en indiquant le nombre total de champs concernés (la somme des champs de toutes les pages) ?
Ca, je sais pas faire, mais ca m'intéresse :(  




 
Non c pas ca :D
on va y arriver
 
bon j'ai un moteur de recherche
jaffiche sur la page de resultat du moteur de recherche le nombres de reponses au recherche.
 
tt va bien là
 
mais sur Free, on est obligé de LIMITer les resultats pour une question de sécurité pour FREE (ce qui est normal)  
 
donc je limit le tout mais pour laffichage du nombres de reponses comment limiter aussi ?


---------------
Make Portraits, Not War!  
mood
Publicité
Posté le 24-09-2002 à 21:38:04  profilanswer
 

n°219733
mrbebert
Posté le 24-09-2002 à 21:49:14  profilanswer
 

Dans tous les cas, un SELECT count(*) FROM ... ne renvoie qu'une ligne.
A priori, un LIMIT 0, 1 devrait suffire.
Je teste demain [:proy]

n°219801
mrbebert
Posté le 25-09-2002 à 10:04:57  profilanswer
 

Sur mysql 3.23.52, 'SELECT count(*) FROM table' renvoie la même chose que 'SELECT count(*) FROM table LIMIT 0, 1'
Le count(*) porte bien sur l'ensemble de la table, avant que le résultat ne soit tronqué par le LIMIT.

n°219850
--greg--
Posté le 25-09-2002 à 11:52:53  profilanswer
 

désespérant ce topic [:drwatson]
 
mrbebert: t'as quand meme repeté 3 fois ce que j'avais dit a mon 1er post, et il a tjs pas compris  :ouch:  :??:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°219882
ludo2604
kitsch' me if u can
Posté le 25-09-2002 à 12:52:10  profilanswer
 

--greg-- a écrit a écrit :

désespérant ce topic [:drwatson]
 
mrbebert: t'as quand meme repeté 3 fois ce que j'avais dit a mon 1er post, et il a tjs pas compris  :ouch:  :??:




 
siiiiii j'ai comprissssssssssssss
 
mais j'ai 10 affichages
 
je ne veux pas qu'ily ai "38 resultats à cette recherche"
 
YA PAS un Autre moyen de limiter alors ?


---------------
Make Portraits, Not War!  
n°219937
Castor666
:°)=
Posté le 25-09-2002 à 14:14:12  profilanswer
 

castor666 a écrit a écrit :

Code :
  1. $sql = "SELECT COUNT(*) AS qte FROM artistes WHERE nomLIKE '%$search '%' LIMIT 0,[g]5 ';
  2. $p = mysql_query($sql);
  3. $total1 = mysql_result($p,"0","qte" );


je croit que c'est ce que tu cherche ;-)




 
BAH VOILA !!  :fou:  
Si tu le met dans le mysql request le 0, ca sert a rien...
Et on m'ecoute pas  :o


---------------
Mon blog de nerd...
n°219944
mrbebert
Posté le 25-09-2002 à 14:22:36  profilanswer
 

ludo2604 a écrit a écrit :

 
 
siiiiii j'ai comprissssssssssssss
 
mais j'ai 10 affichages
 
je ne veux pas qu'ily ai "38 resultats à cette recherche"
 
YA PAS un Autre moyen de limiter alors ?



:pt1cable:  :pt1cable:  
 
Tu veux qu'il y ait quoi alors :??:  :??:

n°219955
Castor666
:°)=
Posté le 25-09-2002 à 14:27:03  profilanswer
 

ce qu'il cherche, c'est ça :

Code :
  1. $sql = "SELECT COUNT(*) AS qte FROM artistes WHERE nomLIKE '%$search '%' LIMIT 0,5 '; 
  2.   $p = mysql_query($sql); 
  3.   $total1 = mysql_result($p,"0","qte" );


Dans ce cas, le limit 0,5 fonctionne..
Mais le probleme, c'est que si il limite a 5, ca renvoira evidement 5 ligne  :sarcastic:


---------------
Mon blog de nerd...
n°219974
ludo2604
kitsch' me if u can
Posté le 25-09-2002 à 14:44:23  profilanswer
 

castor666 a écrit a écrit :

 
 
BAH VOILA !!  :fou:  
Si tu le met dans le mysql request le 0, ca sert a rien...
Et on m'ecoute pas  :o  




Bah non ça marche pas :/


Message édité par ludo2604 le 25-09-2002 à 14:47:57

---------------
Make Portraits, Not War!  
n°219984
mrbebert
Posté le 25-09-2002 à 14:49:53  profilanswer
 

ludo2604 a écrit a écrit :

kkun a-t-il compris mon prob ?


non
Prenons un cas concret : t'as une requête où le "WHERE nom LIKE '% . $search . %'" correspond à 50 enregistrements et tu limites tes pages à 20 lignes. Tu veux qu'il mette quoi en haut ?

n°219988
ludo2604
kitsch' me if u can
Posté le 25-09-2002 à 14:56:22  profilanswer
 

mrbebert a écrit a écrit :

 :pt1cable:  :pt1cable:  
 
Tu veux qu'il y ait quoi alors :??:  :??:  




 
arf je vais mettre un exemple
 
par exemple je tappe le mot "love" dans le moteur de recherche qui cherche dans ma table "artistes" et "titres"
 
bon sur ma page de resultats
 
Il ya :
 

Citation :

Recherche du mot ' love ' : Il y a 75 résultats correspondant à votre requete.


 //liste des 75 resultats
 

Citation :

All the love in the world - Corrs (the)
. All you need is love - Beatles (the)
. Baby love - Joan Osborne
. Could you be loved - Bob Marley
. Digital Love - Daft Punk
. Don't say you love me - Corrs (the)
. Falling in love again - Eagle Eye Cherry
. Hate this and I'll love you - Muse
etc..


 
ca c en local ok.
 
sur Free, il me faut limiter les resultats...
Je décide par exemple de limiter à 30.
 

Citation :

//liste des 30 resultats
 All the love in the world - Corrs (the)
. All you need is love - Beatles (the)
. Baby love - Joan Osborne
. Could you be loved - Bob Marley
. Digital Love - Daft Punk
. Don't say you love me - Corrs (the)
. Falling in love again - Eagle Eye Cherry
. Hate this and I'll love you - Muse
etc..


 
mais pour ça :
 

Citation :

Recherche du mot ' love ' : Il y a 75 résultats correspondant à votre requete.


 
lui il va toujours rester à 75 puisqu'on ne la pas limiter!
comment faire pour limiter ca voila !!


---------------
Make Portraits, Not War!  
n°219992
xkamui
Their Destiny Was Foreordained
Posté le 25-09-2002 à 15:01:36  profilanswer
 

ok, dans ce cas là, il fô faire 2 requetes
 
une qui va compter tes résultats, sans de LIMIT
une qui va chercher tes infos dans ta base, avec un LIMIT $Start,30
 
où $Start est une variable renvoyé par un lien du style : result.php?Start=$Start+30 (attention, synthaxe fausse, mais j'ai pas tout le code en tête)
 
voilà

n°219994
mrbebert
Posté le 25-09-2002 à 15:05:36  profilanswer
 

Si la première requête trouve 75 résultats, tu peux limiter la deuxième à ... 75 :D  
 
Ou alors, tu dis : "75 résultats trouvés, voici les 30 premiers" (si tu limites à 30), et tu mets un bouton "page suivante" en bas de la page pour accéder aux 30 suivants.
 
Ou encore, tu fais plusieurs requêtes dans la même page, chacune renvoyant 30 lignes.


Message édité par mrbebert le 25-09-2002 à 15:06:51
n°219995
xkamui
Their Destiny Was Foreordained
Posté le 25-09-2002 à 15:11:42  profilanswer
 

moi, g fait ça :  
 

Code :
  1. $Querycount="select COUNT(ID) from auto Where ((Valid like '1') $Mk $Md $Fl $Et $Px)";
  2. $Resultcount=MYSQL_QUERY ("$Querycount" );
  3. $Row=MYSQL_FETCH_ROW ($Resultcount);
  4. $Query="SELECT * from auto Where ((Valid like '1') $Mk $Md $Fl $Et $Px) order by $Tri $Ss LIMIT $St,$Li";
  5. $Result=MYSQL_QUERY ("$Query" );
  6. While ($Tab=MYSQL_FETCH_ROW ($Result))
  7. {
  8. echo "ce que tu veux";
  9. }
  10. $Next=$St-$Li;
  11. $Prev=$St+$Li;
  12. If ($Tri=="ID" ){$Tri="";}
  13. If ($Prev>="$Row[0]" ){$PicPrev="";}
  14. Else {
  15. $PicPrev="<img src=\"../../img/auto/prev.gif\" width=\"20\" height=\"5\">";
  16. $TxtPrev="<A Href=\"main.php?Tri=$Tri&Ss=$Ss&St=$Prev&Li=$Li&Mk=$Mk&Md=$Md&Fl=$Fl&Et=$Et&Pmin=$Pmin&PMax=$PMax\" class=\"Link2\">Annonces précédentes</A>";}
  17. If ($Next<"0" ){$PicNext="";}
  18. Else {
  19. $PicNext="<img src=\"../../img/auto/next.gif\" width=\"20\" height=\"5\">";
  20. $TxtNext="<A Href=\"main.php?Tri=$Tri&Ss=$Ss&St=$Next&Li=$Li&Mk=$Mk&Md=$Md&Fl=$Fl&Et=$Et&Pmin=$Pmin&PMax=$PMax\" class=\"Link2\">Annonces suivantes</A>";
  21.      }
  22. echo "
  23.       <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  24.        <tr>
  25.         <td width=\"30\"> </td>
  26.         <td align=\"left\" valign=\"middle\" width=\"20\">$PicPrev</td>
  27.         <td align=\"left\" valign=\"middle\">$TxtPrev</td>
  28.         <td align=\"right\" valign=\"middle\">$TxtNext</td>
  29.         <td width=\"20\" align=\"right\" valign=\"middle\">$PicNext</td>
  30.         <td width=\"30\"> </td>
  31.        </tr>
  32.       </table>
  33. ";

n°220157
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 25-09-2002 à 18:24:19  profilanswer
 

Et avec un sous-select ? Y a pas moyen?
 
Enfin je suis pas sur qu'on puisse en MySQL mais je me trompe peut etre??? jamais essayé ...  :??:  
 
sinon la solution de mrbebert me parrait correcte et la meilleure:  
 

Si la première requête trouve 75 résultats, tu peux limiter la deuxième à ... 75 :D  
 
Ou alors, tu dis : "75 résultats trouvés, voici les 30 premiers" (si tu limites à 30), et tu mets un bouton "page suivante" en bas de la page pour accéder aux 30 suivants.  
 
Ou encore, tu fais plusieurs requêtes dans la même page, chacune renvoyant 30 lignes.


 
a+


---------------
J'ai une pierre à la place du coeur, et au milieu de cette pierre il y a un coeur.
n°220165
Sh@rdar
Ex-PhPéteur
Posté le 25-09-2002 à 18:30:53  profilanswer
 

c'est du délire ce post  :ouch:  :ouch:  
 
 
tu crées une variable $Max qui contiendra le nombre MAXIMUM de ligne à retourner.
 
tu fais ta requête LIMIT $Max
 
tu compte le nombre de résultat avec  
$Total = mysql_num_rows()
 
si tu t'arrêtes à 30 résultat, $Total vaudra 30
si t'as que 12 résultats $Total vaudra 12 (soit le nombre de lignes retournées par la requête)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°220403
Castor666
:°)=
Posté le 26-09-2002 à 10:29:49  profilanswer
 

Sh@rdar a écrit a écrit :

c'est du délire ce post  :ouch:  :ouch:



 +1

n°220417
--greg--
Posté le 26-09-2002 à 10:46:37  profilanswer
 

c'est ce que je dis depuis le debut :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  LIMIT qui ne marche pas

 

Sujets relatifs
prob C étrange : programme qui marche et personne ne comprend pourquoi[PHP][Mysql] Update d'un champ qui marche po
programmationworld.com ne marche plus ??Tableau d'objet : comment çà marche
je cherche un serveur smtp qui marche pour mettre dans le forum phpBB2Phpbb ne marche plus !!!
Comment ca marche les Fichiers "WAV" ??[JavaScript] Pourquoi ca marche pas ??....
Sockets, PHP, newsletter... comment ça marche ?[Easy Php] Pourquoi ca marche pas ? (Avec XP)
Plus de sujets relatifs à : LIMIT qui ne marche pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR