Requête SQL avec PHP pour compter nombre de contrat [Résolu]

Signaler
-
 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

Messages postés
16012
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
867
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']
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 :)