Problème avec une requete mysql_num_rows

Fermé
Toons43 - 4 oct. 2007 à 16:06
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 - 4 oct. 2007 à 16:28
Bonjour à tous,

Je débute en php et j'ai un problème avec une requete sql qui doit me permettre normallement d'afficher le nombre de valeur présentent dans la table.

Voici mon code

<?php
mysql_connect("localhost", "root", "123456"); // Connexion à MySQL
mysql_select_db("maBaseMySQL"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT r.Marchand_code, m.ID, m.Marchand, m.Categorie, r.Date_fin 
           	FROM marchand m
           	LEFT JOIN reduction r ON m.ID = r.Marchand_id") or die(mysql_error()); 
		   
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<a href="http://www.monsite.com/repertoire/<?php echo $donnees['Categorie']; ?>/<?php echo $donnees['ID']; ?>-<?php echo $donnees['Marchand'];?>.htm"><?php echo $donnees['Marchand']);?> 

<?php
$donnees = mysql_num_rows($reponse); 
if (Date_fin < date('Y-m-d')) { 
echo '(0)', '</br>'; }
else {
echo '(', $donnees, ')', '</br>'; }
} ?>

<?php
mysql_close();
?>



J'aimerais que ce code me liste les marchands de ma table avec le nombre de pubs pour chacun si la date est encore valable

exemple :

marchand 1 (3)
marchand 2 (1)
marchand 3 (0)
marchand 4 (6)
...

Le problème c'est que ce code me liste tous les marchands avec le même nombre de pubs (ce qui correspond au nombre total de ligne de ma table)

J'ai fait une jointure de mes 2 tables car dans la première je liste les marchands, leur description, etc.. et dans la deuxième il y a toutes les pubs (plusieurs possibles par marchand) avec des dates d'expiration

Je ne sais pas du tout comment je dois faire, si l'un d'entre vous pouvez me donner un petit coup de main ce serait super gentil.

D'avance merci

Bonne journée

1 réponse

pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
4 oct. 2007 à 16:28
Pour commencer tu associes 2 valeurs différentes à ta variable donnees :
$donnees = mysql_fetch_array($reponse)
$donnees = mysql_num_rows($reponse);

donc tu écrases le 1er résultat, renomme ta 2e variable :
$donnees = mysql_fetch_array($reponse)
$nb_donnees = mysql_num_rows($reponse);

Ensuite affiche ta requête :

echo $reponse;

tu pourras vérifier qu'il n'y a pas d'erreur de jointures dans ta requete.
1