Requête SQL avec PHP pour compter nombre de contrat

Résolu
BorderSool -  
 BorderSool -
Bonjour,

Comme vous pouvez le voir dans mon code, j'ai une page php nommée "typeContrat.php" sur cette page, je rentre mes types de contrats avec leurs tarifs. Mais j'aimerai voir le nombre de contrat associé à ce type de contrat. Pour être plus clair, j'ai une autre page php nommée "contratsClients.php" dans cette page j'associe mes contrats de typeContrat à mes clients. Imaginons que j'ai un contrat appelé "ASSISTANCE PC X01" et que ce contrat est associé à par exemple 6 clients, dans ma page typeContrat.php j'aimerai avoir dans mon tableau dans la ligne "ASSISTANCE PC X01" et dans la colonne Nb Contrat le chiffre 6.

Voici donc mon code de "typeContrat.php", j'ai rajouté le <?php echo count ($nbContrat)?> car c'est ce que j'aimerai avoir mais comme je n'arrive pas à coder ça :/
<?php

			$stmt = $pdo->prepare('SELECT * from typecontrat order by nom ASC');
			$stmt->execute();
			$resu=$stmt->fetchALL();
		
		?>
		<table>
			<tr>
				<th>Nom</th>
				<th>Tarif<th>
				<th>Nb Contrat</th>
			</tr>
			<?php 
					
				
			foreach ($resu as $res)
			{
			?>
				<tr class="trlist">
					<td style="width:300px; text-align:left;"><a href="modifierTypeContrat.php?id=<?php echo $res['id']?>"><?php echo $res['nom']?></a></td>
					<td style="width:200px; text-align:left;"><?php echo $res['tarif']?></td>
					<td style="width:200px; text-align:left;"><?php echo count ($nbContrat)?></td>

				</tr>				
									
			<?php
			}
			?>		
		</table>


La base de donnée de la page "contratsClients.php" est 'listeContrats' et les noms de contrats sont 'nomContrat'. Merci :)

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    il serait utile que tu décrives les tables de ta base de données: liste des tables, liste des champs par table.

    essaie ceci:
    select t.id as id, t.nom as nom, t.tarif as tarif, count(*) as nbcontrats
    from typecontrat as t, listeContrats as l
    where t.nom = l.nomContrat
    group by t.id, t.nom, t.tarif
    order by t.nom


    tu devrais retrouver le compteur dans
    $res['nbcontrats']
    1
    1. BorderSool
       
      Merci beaucoup ^^ !

      ça fonctionne bien et ça faisais 2h que j'étais bloqué dessus alors que je savais que c'était pas si dur que ça... ahah :)
      0