tinio Posté 4 Février 2009 Posté 4 Février 2009 Bonjour, Je fais une recherche multicritères dans une base de donné afin de récupérer une liste de résultats qui correspondent aux critères renseignés. Je veux donc récupérer les résultats et le nombre de résultats. Actuellement je fais deux requêtes une pour les infos et une pour le nombre de résultat. en gros SELECT id,titre_fr,ss_titre_fr FROM matable WHERE lavie='c bo' et SELECT COUNT(id) FROM matable WHERE lavie='c bo'. Je pense qu'il existe une solution pour faire une seule requête mais lorsque je fusionne les deux: SELECT id,titre_fr,ss_titre_fr,COUNT(*) FROM matable WHERE lavie='c bo' j'ai un problème lors que listage, mon while($result=mysql_row($query)) ne me renvoi plus qu'un seul résultat. Avez-vous une explication et/ou une solution. Merci d'avance Antoine
blman Posté 4 Février 2009 Posté 4 Février 2009 Regarde cette fonction PHP : http://fr.php.net/mysql_num_rows Ca pourra t'aider
tinio Posté 6 Février 2009 Auteur Posté 6 Février 2009 Merci beaucoup mais ya un soucis, pour optimiser mes requêtes et gérer ma pagination, je met un limit dans recherche sql. Donc mysql_num_rows m'affiche toujours le nombre de resultat definit par mon limit. Ya pas moyen de faire une requete sql qui retourne les résultats et le nombre d'éléments (sans prendre en compte mon limit) en même temps? Antoine
Kioob Posté 7 Février 2009 Posté 7 Février 2009 Si tinio c'est faisable, mais pas forcément plus rapide/optimisé. La plupart du temps je fais simplement un count(*) qui est général, commun à toutes les pages (et donc placé en cache). Suivi du "select xxxx limit" qui récupère les données de la page courante. Mais c'est évidement à adapter au volume de données et au volume d'écriture des données. Une autre solution c'est d'ajouter 1 à ton limit. Si tu veux 20 lignes, tu en demandes 21. Cela te permet ainsi de savoir s'il y a une page suivante ou non ; mais ça ne t'indique pas le nombre de page total.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant