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 :

Mise à jour automatique d'une requête [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut Mise à jour automatique d'une requête
    Salut les développeurs, je développe une plateforme de gestion des élections en ligne. j'ai créer une page qui permet d'afficher le déroulement des élections comme l'indique la figure suivante.
    Je veux donc que la requête qui m'affiche les voix des candidats soit mise à jour de manière automatique chaque seconde sans qu'on ne clique le bouton de mie à jour.
    Nom : deroulement.JPG
Affichages : 288
Taille : 59,5 Ko


    Requête qui m'affiche les candidats ainsi que leur voix :
    Code php : 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
    <?php
    													$rep = $bdd->query("SELECT 	NomCandidat, 
    												PrenomCandidat, 
    												NomParti,
    												COUNT(*)  AS Voix
    											FROM candidat,vote
    											WHERE candidat.CodeCandidat=vote.CodCandidat
    											GROUP BY CodCandidat
    											");
     
    													while ($donnees = $rep->fetch()) {
     
    														echo   '<b><div class="donnees_id">'.$donnees['NomCandidat'] . ' '.$donnees['PrenomCandidat'] . ' :</b> ' . $donnees['Voix'] .'</div>'; "<br/>";
     
    													}
     
    													?>



    Cordialement !!!

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonjour,
    2 methodes s'offrent a toi :
    1) Cron (mais cela ne va pas s'actualliser toutes les secondes)
    2) intégrer javascript avec setTimeout et ajax

  3. #3
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour Manequin.
    Ta requête SQL n'est pas correcte car elle fait disparaître un candidat tant qu'il a zéro voix.
    Prends plutôt celle-ci :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT c.NomCandidat, 
    c.PrenomCandidat, 
    c.NomParti,
    COUNT(DISTINCT v.id)  AS nb_voix
    FROM candidat c
    LEFT JOIN vote v on c.CodeCandidat=v.CodCandidat
    GROUP BY c.CodCandidat

    Toutes les secondes ? Est-ce bien utile ?

    Pour ma part, je me contenterais de faire un cron qui se réveille toutes les minutes, qui lance un

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(*) as nb from vote;

    Et qui recherche un résultat dans une table comptage_vote(id, nb_votes,der_maj)...
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select nb_votes from comptage_vote 
    order by der_maj desc;
    Si le dernier résultat est le même, le cron se recouche, sinon, le cron insère le dernier comptage puis force le rafraîchissement de la page pour tous les clients.

    PS : sur le fond maintenant : un vote normalement, je parle d'un vote sérieux, n'affiche pas ses résultats au fur et à mesure, pour ne pas influencer les électeurs au fur et à mesure. Ce n'est pas un tiercé. Les gens votent en leur âme et conscience, par pour gagner le pactole... Mais bon... Ce n'est que pour l'administrateur, j'espère ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Sinon le cron juste pour actualiser le nombre de votes et les résultats affichés a la fin
    Il vaudrait mieux enlever aussi les secondes du coup parce que ta page ne s'actualise pas toutes les secondes.

  5. #5
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Bonjour Manequin.
    Ta requête SQL n'est pas correcte car elle fait disparaître un candidat tant qu'il a zéro voix.
    Salut et merci pour vos réponses qui m'aident franchement. Ma requête n'affiche que les candidats qui ont des voix parce que ma requête s'appui sur la table vote qui contient les voix des candidats qu'on a déjà attribué des voix.

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    J'ai un soucis avec mes requêtes qui fonctionnent bien en invite de commande que dans le site.
    Je dois afficher des résultats Résultats Généraux, Résultats par bureau de vote, Résultats par Arrondissement, Résultats par Département et Résultats par Région comme l'indique la figure suivante :
    Nom : 5.PNG
Affichages : 240
Taille : 83,1 Ko

    La requête pour afficher les Résultats Généraux
    Code php : 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
    <section>
    		<center>
    		    <h1><?php
    			$rep = $bdd->query("SELECT NomParti AS PARTI, COUNT(*) AS Voix 
    							FROM vote, parti
    							WHERE CodeParti=CodParti
    							GROUP BY codParti
    							ORDER BY Voix DESC
    							");
     
    					while ($donnees = $rep->fetch()) {
     
    					echo   '<b><div class="donnees_id">'.$donnees['PARTI'] .' :</b> ' . $donnees['Voix'] .'</div>'; "<br/>";
     
    					}
     
    				?></h1>
    					  </center>
     
    					</section>

    La requête pour afficher les Résultats par bureau de vote qui fonctionne en invite SQL. Mais pas sur le site
    Code sql : 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
    <h2><?php
     
    								$rep = $bdd->query("SELECT NomParti AS PARTI, COUNT(*) AS Voix, CodeBureau_de_vote
    													FROM vote, parti, bureau_de_vote
    													WHERE CodeBureau_de_vote= ? AND CodeParti=CodParti  
    													AND CodBureau_de_vote=CodeBureau_de_vote
    													GROUP BY codParti
    													ORDER BY Voix DESC	 
    													");
     
    													while ($donnees = $rep->fetch()) {
     
    														echo   '<b><div class="donnees_id">'.$donnees['PARTI'] .' :</b> ' . $donnees['Voix'] .'</div>'; "<br/>";
     
    													}
     
    								?></h2>
    Nom : 6.PNG
Affichages : 232
Taille : 10,2 Ko



    Cordialement !!!!

  7. #7
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    et y a pas d erreur

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/06/2007, 12h03
  2. Mise à jour automatique d'une page Web
    Par mydev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/04/2007, 10h58
  3. Réponses: 4
    Dernier message: 09/03/2007, 19h19
  4. [Conception] mise à jour automatique d'une base de donné distante
    Par bipbip2006 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2006, 16h45
  5. Mise à jour automatique d'une table access via un .xls
    Par infratunes dans le forum Access
    Réponses: 4
    Dernier message: 05/04/2006, 18h33

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