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

 


Dernière réponse
Sujet : [PHP/MySQL] Problèm de logique
speedyop bah en mysql c tout vu:
 
avec page recupéré de l'url et rowcount fixé par exemple a 10
 
 
select truc from table limit page,rowcount  
 
en SQL 2000
 
tu me dit que l'equivalent c  
 
select truc from table where start=page having maxrow=rowcount

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
speedyop bah en mysql c tout vu:
 
avec page recupéré de l'url et rowcount fixé par exemple a 10
 
 
select truc from table limit page,rowcount  
 
en SQL 2000
 
tu me dit que l'equivalent c  
 
select truc from table where start=page having maxrow=rowcount
iskream

speedyop a écrit a écrit :

ok donc impossible de prendre les 10 article de ma deuxieme page donc?  




bien si, il te suffit d'indiquer dans "start=" la valeur de ton dernier enregistrement de la derniere requete effectuée,
et ainsi de suite.
 
Pour optimiser, autant ne ramener que le nécessaire :)
A chaque fois que j'ai du développer de telles fonctionnalités pour des sites clients, je n'ai jamais vu (apres avoir analysé les stats) que la majorité des internautes allaient voir la 72 eme page de résultat de la recherche. C'est le cas d'un ou deux uniquement :)
 
L'idée est de trouver un id séquentielle ou une astuce qui te permette de marquer ce parametre "start" dans tes liens apres, mais cela depend de tout un tas de truc, dont ton modele de données, les outils que tu utilises, ton type d'application, etc... Dans une appli client serveur, la manière de faire peut encore varier.

speedyop ok donc impossible de prendre les 10 article de ma deuxieme page donc?
iskream

speedyop a écrit a écrit :

? pas compris.... :heink:  
 
exemple afficher des articles avec navigation page suivante page precedente...kan t'as 20000 articles...  




On ne parlait pas de la meme chose :) moi j'étais encore collé au topic original :)

iskream

speedyop a écrit a écrit :

? pas compris.... :heink:  
 
exemple afficher des articles avec navigation page suivante page precedente...kan t'as 20000 articles...  




 
j'ai pas la syntaxe exacte en tete, mais comme je le disais un peu plus haut dans le thread, il y a une fonction qui s'appelle rowcount ou maxrow.
 
Tu fais un truc du genre
select *
from matable
where start=XXX
having maxrow=10
 
Apres, tu fais simplement varier le critere de départ (ici start=XXX) en fonction de l'endroit ou tu te trouves dans ta table ou de l'endroit ou tu veux aller.
 
C'est de la folie de ramener les 20000 d'un coup, tu ramenes simplement les 10 dont tu as besoin à chaque fois :)

speedyop ? pas compris.... :heink:  
 
exemple afficher des articles avec navigation page suivante page precedente...kan t'as 20000 articles...
iskream

speedyop a écrit a écrit :

klk sait si limit effectue la requette en entier et ensuite prends la partie ki l'interesse dans le recorset? parceque dans ce cas la c pas genial sur 15000 lignes...
et la en SQL2000 je suis sur que t'es obliger de te tapper tout le recordset  




pas si tu fais un count() sur toute ta table :)

speedyop klk sait si limit effectue la requette en entier et ensuite prends la partie ki l'interesse dans le recorset? parceque dans ce cas la c pas genial sur 15000 lignes...
et la en SQL2000 je suis sur que t'es obliger de te tapper tout le recordset
iskream

speedyop a écrit a écrit :

vi le limit c ultime par rapport a SQL2000 de merde  




Remarque très constructive :)
mySQL n'est pas comparable aux purs SGBD commerciaux tels que Oracle, Sybase, MS-SQL Server,etc...il n'implémente pas encore toutes les fonctionnalités de base (transactions, requetes imbriquées, triggers, procédures stockées...).  
Cependant, il est malgré tout génial parcequ'abordable techniquement, léger et performant.
Mais bon, chaque applis à son SGBD qui lui convient, le client est roi :)
 
Après, pour avoir un truc plus complet et qui soit open, il y a Interbase, c'est fait par Borland/Inprise, ou bien encore postGreSQL.
 
@+

speedyop vi le limit c ultime par rapport a SQL2000 de merde
Ventilo

omega2 a écrit a écrit :

On améliore la requête d'"iskream" :
"select itemname, count(id) as id_count
from ma_table
group by itemname
order by id_count DESC
LIMIT 0,10"
 
Ca te retourne juste les 10 plus discutés. :)
Ca ne marche qu'avec MySQL.  




 
J'avais compris le principe moi même, mais merci quand même :)

iskream voilà l'instruction qu'il me manquait...je note pour ma culture personnelle :)
omega2 On améliore la requête d'"iskream" :
"select itemname, count(id) as id_count
from ma_table
group by itemname
order by id_count DESC
LIMIT 0,10"
 
Ca te retourne juste les 10 plus discutés. :)
Ca ne marche qu'avec MySQL.
Ventilo Merci beacoup!!!  :)
iskream

Ventilo a écrit a écrit :

Sur mon site, je veux faire un tableau de statisqitque sur les items les plus discuter...
 
J'ai une table MYSQL conçu comme ca:
|id|itemname|nick|commentaire|
 
Maintenant ce que je voudrais faire c'est avoir combien de commentaire il y a eu pour chaque item et faire un top 10.
 
Mais comme je commence en laguage SQl je sais pas trop comment faire.... Quelqu'un peu me mettre sur la piste??
 
Pour voir mon site c'est http://mxq.multimania.com
quoi que c'est pas vraiment utile à la question, mais je veux vous donner le plus de détails! merci d'avance!  




 
En faisant une requete du type :
"select itemname, count(id) as id_count
from ma_table
group by itemname
order by id_count DESC"
 
tu récuperas le classement de tes items les plus discutés, triés par ordre décroissant.
Pour déterminer les plus discutés, il doit falloir utiliser une instruction de type ROWCOUNT (sous Oracle), ou MAXROW (chez Microsoft). J'ignore quel est le nom de cette instruction sur mySQL, mais essaye de jetter un oeil dans la doc pour ca, et complete la requete que je t'ai indiqué.
 
@+

Ventilo Sur mon site, je veux faire un tableau de statisqitque sur les items les plus discuter...
 
J'ai une table MYSQL conçu comme ca:
|id|itemname|nick|commentaire|
 
Maintenant ce que je voudrais faire c'est avoir combien de commentaire il y a eu pour chaque item et faire un top 10.
 
Mais comme je commence en laguage SQl je sais pas trop comment faire.... Quelqu'un peu me mettre sur la piste??
 
Pour voir mon site c'est http://mxq.multimania.com
quoi que c'est pas vraiment utile à la question, mais je veux vous donner le plus de détails! merci d'avance!

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)