IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Counter nombre de client boucle while


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2021
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Counter nombre de client boucle while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <tbody>
    					<?php
    						$req = $db->prepare("SELECT * FROM user, information_user WHERE user.id_user =  information_user.id_user");
    						$req->execute();
     
    						while($result = $req->fetch(PDO::FETCH_ASSOC)) : ?>
    						<tr>
    						    <td><?= "CO00" . $result["id_user"] ?></td>
    							<td><?= $result["first_name"] ?></td>
    							<td><?= $result["last_name"] ?></td>
    							<td><?= $result["company_name"] ?></td>
    							<td><?= $result["num_phone"] ?></td>
    							<td><?= $result["num_cell"] ?></td>
    							<td><?= $result["email_user"] ?></td>
    							<td><button class="edit">Modifier</button><button class="view">Voir</button></td>
    						</tr>
    						<?php endwhile ?>
    					</tbody>
    					<tfoot>
     
    					    <tr>
    						    <td colspan="8">Total Client:<?= count($result["id_user"]); ?> </td>
    						</tr>
    					</tfoot>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 242
    Points : 8 521
    Points
    8 521
    Billets dans le blog
    17
    Par défaut
    Si 1 ligne = 1 client, alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    		$req = $db->prepare("SELECT * FROM user, information_user WHERE user.id_user =  information_user.id_user");
    		$req->execute();
    		$nb_clients = 0; // Compteur de clients
    ?>
    <tbody>
    	<?php while ($result = $req->fetch(PDO::FETCH_ASSOC)) : ?>
    		<?php $nb_clients++ ?>
    		<tr>
    			<td><?= "CO00" . $result["id_user"] ?></td>
    			<td><?= $result["first_name"] ?></td>
    			<td><?= $result["last_name"] ?></td>
    			<td><?= $result["company_name"] ?></td>
    			<td><?= $result["num_phone"] ?></td>
    			<td><?= $result["num_cell"] ?></td>
    			<td><?= $result["email_user"] ?></td>
    			<td><button class="edit">Modifier</button><button class="view">Voir</button></td>
    		</tr>
    	<?php endwhile ?>
    </tbody>
    <tfoot>
    	<tr>
    		<td colspan="8">Total Client:<?= count($result["id_user"]); ?> </td>
    	</tr>
    	<tr>
    		<td colspan="8">Nombre de clients: <?= $nb_clients ?> </td>
    	</tr>
    </tfoot>
    Voir aussi PDOStatement::rowCount() => https://www.php.net/pdostatement.rowcount
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 345
    Points : 39 743
    Points
    39 743
    Billets dans le blog
    9
    Par défaut
    Le titre du fil de discussion ne semble pas conforme au besoin : s'il ne s'agit que de connaître le nombre de clients, alors il ne faut pas créer une boucle while contre performante, mais exécuter une simple requête SELECT COUNT avec éventuellement l'opérateur DISTINCT si le même client peut être présent plusieurs fois dans la table ou vue parcourue.
    Si le besoin est de récupérer certains attributs du client comme semble l'indiquer le code PHP, alors il ne faut surtout pas utiliser une requête SELECT *.
    Voir ICI pourquoi SELECT * est à proscrire !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2021
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Select*
    Parfais je prends note que Select* ne devrais pas être utilisé. Je crois que vous avez raison.

    Mais mon problème j'utilise while pour lister les client dans un table html et ensuite je veux un peux plus loin a l'extérieur de la boucle compter le nombre de client.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2021
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci pour ton lien mon ami, j'utilise $count = $req->rowCount(); et me retourne 5.

    Je vous promets de n'utiliser SELECT que pour ce dont j'ai besoin.

    On apprend chaque jour.

    merci

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 345
    Points : 39 743
    Points
    39 743
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par dereck1979 Voir le message
    Mais mon problème j'utilise while pour lister les client dans un table html et ensuite je veux un peux plus loin a l'extérieur de la boucle compter le nombre de client.
    Si c'est pour compter le nombre de clients qu'on a traité dans le WHILE, alors cette requête est inutile, le compteur de boucle suffit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Nombre pairs jusqu'à 20 avec une boucle while
    Par Darkoos0410 dans le forum Langage
    Réponses: 0
    Dernier message: 23/03/2020, 12h09
  2. Réponses: 4
    Dernier message: 10/12/2019, 10h23
  3. Boucle While avec nombre variable de conditions
    Par jazzybluesy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/09/2012, 19h05
  4. Compter le nombre de boucles while...do
    Par abdelilah dans le forum Pascal
    Réponses: 2
    Dernier message: 21/12/2006, 16h45
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo