Bonjour,

Je souhaite compter et afficher le nombre d'occurrence identique entre 2 valeurs de 2 tables différentes php.
Je souhaite voir afficher un nombre correspondant par exemple:
Dans la Table matchs = id 66 (Il y a qu'une seul ligne forcément c'est la primaire AI)
Compter et afficher dans la Table stages, nom = matchsid, valeurs = 66, Si il y a 3 fois cette valeurs alors on affiche 3

 <?php
$membre = $userinfo['id'];
$stmt = $bdd->prepare('SELECT * from matchs WHERE matchiduser = ? ORDER BY  matchcreation  DESC');
$stmt->execute(array($membre));

           $stageselect = 0;
           $resultstage = $bdd->prepare("SELECT * FROM stages WHERE matchsid ");
           $nbrstage = $resultstage->execute(array($stageselect));

while($matches = $stmt->fetch(PDO::FETCH_OBJ)) { ?>        
  <div class="stage" style="position:relative;">         
    <form class="auto left">
      <tr>                        
       <td><?php echo $matches->name; ?></td>
       <?php
       $matchselect = $matches->id;
       $result = $bdd->prepare("SELECT * FROM matchs WHERE id =$matchselect");
       $nbrs = $result->execute(array($matchselect, $stageselect));
       $count = $result->rowCount(); ?>          
      <td><?php echo $count ?></td>       
      <?php{ ?>

Forcément mon code ne fonctionne pas il m'affiche le résultat 1
Tout le code n'est pas affiché mais l'éssentiel est la, a priori

Voila merci d'avance.

3 réponses


Carouge10
Réponse acceptée

Bonjour,
Utilises plutôt un alias

SELECT COUNT(*) as nombre FROM stages ....
puis $idSame->nombre

Tu peux aussi preparer ta requête comme ça tu la sors de la boucle et ne garde que le execute + fetch

Nesyou75
Auteur

Hello,
J'ai tester COUNT(*) mais je ne sais pas m'en servir et dans la doc PHP je n'ai pas trouver mon bonheur.

Le probleme c'est que j'ai une premiere boucle while pour afficher tout les matchs et avec le count(*) en dessous le resultat est bon puisque il trouve 3 matches avec 2 stages par match ce que j'ai dans la db ayant les memes id mais le tout dans un tableau sans les id.

Je ne sias donc pas comment faire l'association des id et coment faire un echo de la bonne valeur du tableau array.

Voici ce que j'ai testé entre autre :

<?php while($matches = $stmt->fetch(PDO::FETCH_OBJ)) { ?>        
      <div class="stage" style="position:relative;">         
        <form class="auto left">
         <?php    
         $idmatchs = $matches->id;            
         $sameId = $bdd->query("SELECT COUNT(*) FROM stages WHERE matchsid='$idmatchs' ");
         $idSame = $sameId->fetch();
         var_dump($idSame);
         ?>
         <tr> 
         <td><?php echo $idSame; ?></td>
          <td><?php echo $matches->name; ?></td>                 
            <td><?php echo $matches->matchdate; ?></td>
            <td><?php echo $matches->clubName; ?></td>

Le résultat du var_dump de la variable du fetch:

array (size=2)
'COUNT()' => string '2' (length=1)
0 => string '2' (length=1)
C:\wamp64\www\matchs3.php:512:
array (size=2)
'COUNT(
)' => string '2' (length=1)
0 => string '2' (length=1)
C:\wamp64\www\matchs3.php:512:
array (size=2)
'COUNT(*)' => string '2' (length=1)
0 => string '2' (length=1)

Nesyou75
Auteur

Bonsoir Carouge10,
Oui éffectivement c'est parfait merci a toi, ça fonctionne!