LIMIT qui ne marche pas - PHP - Programmation
Marsh Posté le 24-09-2002 à 18:06:36
Code :
|
je croit que c'est ce que tu cherche ;-)
Marsh Posté le 24-09-2002 à 18:19:44
merci mais nan ça ne marche pas...
Si tu regardes bien, le 0 est deja dans le mysql_result
Marsh Posté le 24-09-2002 à 18:23:23
select count(*) from truc
ça te renvoie jamais qu'un seul record hein...
Marsh Posté le 24-09-2002 à 19:05:51
ReplyMarsh Posté le 24-09-2002 à 20:15:11
--greg-- a écrit a écrit : 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 ?
Marsh Posté le 24-09-2002 à 20:31:03
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.
Marsh Posté le 24-09-2002 à 21:10:13
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
Marsh Posté le 24-09-2002 à 21:22:56
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
Marsh Posté le 24-09-2002 à 21:38:04
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
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 ?
Marsh Posté le 24-09-2002 à 21:49:14
Dans tous les cas, un SELECT count(*) FROM ... ne renvoie qu'une ligne.
A priori, un LIMIT 0, 1 devrait suffire.
Je teste demain
Marsh Posté le 25-09-2002 à 10:04:57
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.
Marsh Posté le 25-09-2002 à 11:52:53
désespérant ce topic
mrbebert: t'as quand meme repeté 3 fois ce que j'avais dit a mon 1er post, et il a tjs pas compris
Marsh Posté le 25-09-2002 à 12:52:10
--greg-- a écrit a écrit : désespérant ce topic mrbebert: t'as quand meme repeté 3 fois ce que j'avais dit a mon 1er post, et il a tjs pas compris |
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 ?
Marsh Posté le 25-09-2002 à 14:14:12
castor666 a écrit a écrit :
|
BAH VOILA !!
Si tu le met dans le mysql request le 0, ca sert a rien...
Et on m'ecoute pas
Marsh Posté le 25-09-2002 à 14:22:36
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 ? |
Tu veux qu'il y ait quoi alors
Marsh Posté le 25-09-2002 à 14:27:03
ce qu'il cherche, c'est ça :
Code :
|
Dans ce cas, le limit 0,5 fonctionne..
Mais le probleme, c'est que si il limite a 5, ca renvoira evidement 5 ligne
Marsh Posté le 25-09-2002 à 14:44:23
castor666 a écrit a écrit : BAH VOILA !! Si tu le met dans le mysql request le 0, ca sert a rien... Et on m'ecoute pas |
Bah non ça marche pas
Marsh Posté le 25-09-2002 à 14:49:53
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 ?
Marsh Posté le 25-09-2002 à 14:56:22
mrbebert a écrit a écrit : 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) |
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 |
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 !!
Marsh Posté le 25-09-2002 à 15:01:36
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à
Marsh Posté le 25-09-2002 à 15:05:36
Si la première requête trouve 75 résultats, tu peux limiter la deuxième à ... 75
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.
Marsh Posté le 25-09-2002 à 15:11:42
moi, g fait ça :
Code :
|
Marsh Posté le 25-09-2002 à 18:24:19
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 |
a+
Marsh Posté le 25-09-2002 à 18:30:53
c'est du délire ce post
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)
Marsh Posté le 24-09-2002 à 17:52:28
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 :
---------------
Make Portraits, Not War!