Requête SQL avec PHP pour compter nombre de contrat

Résolu/Fermé
BorderSool - 22 mars 2021 à 11:32
 BorderSool - 22 mars 2021 à 13:16
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

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
22 mars 2021 à 12:25
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
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