count et limit sur une requete

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : count et limit sur une requete

par zeus » 07 août 2008, 15:43

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par Invité » 07 août 2008, 14:33

bon ok ca a l air de passer meme si il y a quelques pb de perf sur des grosses tables ...

ca peut toujours servir: :lol:
$limitePage = 10;
	if(isset($_GET['NoPage']) AND !empty($_GET['NoPage']) AND is_int($_GET['NoPage']))
	{
		$lh = (int)$_GET['NoPage']*$limitePage;
		$limitSql = $lh.','.$limitePage;	
	}
	else 
	{
		$limitSql = $limitePage;	
	}
			
	$q = 'select SQL_CALC_FOUND_ROWS(Id),Id,Nom,Libelle from table LIMIT '.$limitSql;
	$result = mysql_query($q);	
	$q = 'select FOUND_ROWS()';
	$r = mysql_query($q);
	$d = mysql_fetch_row($r);

while {....

par zeus » 07 août 2008, 14:09

katagoto, un SELECT COUNT(*) sans GROUP BY ne renvoi qu'une seule ligne ... :roll:

Par contre, le besoin de paginer avec un COUNT prend son sens avec le GROUP BY ...

par katagoto » 07 août 2008, 13:44

oui, on peut faire cohabiter les deux sans problèmes, ils sont indépendant l'un de l'autre, contrairement à WHERE.

albat, ça permet de ne pas envoyer toute les informations du résultat en même temps, immagine : l'utilisateur cherche dans la première tranche, si son résultat n'est pas là, hop il va sur la suivante et ainsi de suite, si on revois 10.000 résultat sur une page et que l'utilisateur trouve sa page au 15ème résultat, 9985 résultats auraient été viant alors que seulement 5 résultats auraient été inutile, deplus, ça augmente la charge et le temps d'affichage de la page...

par albat » 07 août 2008, 13:31

Un SELECT count(*) renvoie une unique valeur : le résultat

Je ne comprends pas le besoin de paginer... :-k :-s

par Invité » 07 août 2008, 13:03

SQL_CALC_FOUND_ROWS et FOUND_ROWS()

mm ok par contre ca n' a pas l' air d'etre tres fiable :roll:

count et limit sur une requete

par Invité » 07 août 2008, 12:11

bonjour a tous

une question rapide :

peut on cohabiter un count ( pour retourner le total de ligne ) et une clause limit pour la pagination dans une seul requete ?

:?:

merci par avance pour toute aide ! :P