Afficher le nombre de resultat d'une requete

Eléphant du PHP | 450 Messages

02 juin 2005, 11:02

Bonjour vous tous , j'effectue une recherche sur ma base de données et j'aimerais afficher le nombre de resultat de cette requete hors j'ai essailler la commande

echo $total;
mais sa me donne le nombre de tout les produits contenus dans ma base de données
hors j'aimerais le nombres de ceux qui correspondent a ma requete..

je copie ma requete:

Code : Tout sélectionner

$select="SELECT nom,formule,reference,disponibilite,localisation,quantite,numero_cass FROM produit2"; if (isset($_POST['methode']) && $_POST['methode'] == $var1){ $select .= " WHERE ".$_POST['methode']." LIKE '%".$_POST['motsclef']."%'"; } if (isset($_POST['methode']) && $_POST['methode'] == $var3){ $select .= " WHERE ".$_POST['methode']." LIKE '%".$_POST['motsclef']."%'"; } if (isset($_POST['methode']) && $_POST['methode'] == $var2){ $select .= " WHERE ".$_POST['methode']." = ".$_POST['motsclef'].""; } if (isset($_POST['methode']) && $_POST['methode'] == $var4){ $select .= " WHERE ".$_POST['methode']." = ".$_POST['motsclef'].""; } $select .= " ORDER BY nom"; $select .= " ASC limit ".$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
(en gros jarrive pas a faire la variable qui correspond au nombre de resultat de ma requete )
merci

Eléphant du PHP | 450 Messages

02 juin 2005, 11:08

a mince j'oublié de dire ce qu'etait la variable $total

$total = $row[0];

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 juin 2005, 11:15

Il y a 2 méthodes :

- si tu veux juste afficher le nombre de résultats sans les utiliser, tu fait :
$str_requete = "SELECT COUNT(*) FROM FROM produit2";
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() ); 
$nb = mysql_result($result, 0, 0);
echo $nb
C'est la méthode la plus rapide pour le serveur

par contre,

- si tu veux afficher le nombre de résultats puis utiliser ces résultats,
$str_requete = "SELECT * FROM FROM produit2";
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() ); 
$nb = mysql_num_rows($result);
echo $nb
C'est plus long a exécuter mais tu peux utiliser les résultats retournés sans avoir à refaire une requete SQL
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 450 Messages

02 juin 2005, 11:28

En faite j'aimerais calculer le nombre de resultat pour ma requete mais celle ci est sur plusieur page ..

le echo $nb; me donne la valeur de 20 alors que c'est justement la limite de resultat que j'affiche par page : /

donc jaimerai savoir comment faire pour qu'il calcule le nombre de resultat toutes les pages comprises

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 juin 2005, 11:47

Dans ta requete SQL, soit tu ne met pas le "LIMIT x,20" soit tu enlève la clause WHERE qui limite à 20 affichage et tu devrais avoir le nombre de résultats total ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

02 juin 2005, 11:53

As-tu essayé en ajoutant une colonne count() dans ta requete ? Est-ce que ça passe même avec le LIMIT ?

Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 19672 Messages

02 juin 2005, 11:58

Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 450 Messages

02 juin 2005, 11:59

oui le count () passe avec le LIMIT
sinon je vais essayer d'zeus merci

ViPHP
fab
ViPHP | 2657 Messages

02 juin 2005, 19:28

si tu utilises count() utilise le avec AS
exemple
sql > SELECT count(*) AS total FROM table


c'est toujours plus pratique apres pour récuperer le résultat qui du coup s'appelera total

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2005, 09:19

Clair, mais comme avec mysql_result(), on donne une position et non pas un nom de colonne, c'est pas obligatoire ...

Mais pour les bonnes règles de codage, c'est très conseillé
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer