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 :

Afficher resultat requete count et group by [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 30
    Points
    30
    Par défaut Afficher resultat requete count et group by
    Bonjour

    J'ai 3 tables pr_dossiers,pr_departements et pr_regions : dans pr_dossiers j'ai donc pr_departementId et dans dans pr_departements j'ai departementRegionID pour lier les tables entres elles

    Pour une gestion de dossiers par région j'ai fait une requete qui fonctionne dans phpmyadmin : j'ai bien x dossier dans region 1, x dossier dans région2 etc etc jusqu'à la région 13

    Les résultats sont bons puisque quand je fais une requête par région j'ai les mêmes résultats

    Mais je n'arrive pas à afficher mes résultats dans un tableau

    Voici donc ma requête

    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
    29
    30
    31
    32
    33
     
    $anneeId = $_POST['anneeId'];
     
    $sql1 = "SELECT anneeId,anneeLibelle FROM pr_annees WHERE anneeId = '$anneeId'";
    $req1 = $db->prepare($sql1);
    $req1->bindValue(':anneeId', $anneeId,PDO::PARAM_INT);
    $req1->execute();
    $r1 = $req1->fetch();
    $NomAnnee = $r1['anneeLibelle'];
     
    $sql2 = "SELECT count(DOS.dossierId) as NB ,
            DEP.departementId, DEP.departementRegionId,
            REG.regionId,REG.regionLibelle
            FROM pr_dossiers DOS
            LEFT JOIN pr_departements DEP
            ON DOS.dossierDepartementId = departementId
            LEFT JOIN pr_regions REG
            ON DEP.departementRegionId = regionId
            WHERE YEAR(dossierDateEnregistrement)='$anneeId' 
            GROUP BY regionId
            ";
     
    $req2 = $db->prepare($sql2);
    $req2->execute();
     
    echo "ok"; // je vois cette echo
     
    while($r2 = $req2->fetch()) {
    echo "ok_while"; // là je ne vois pas cette echo
     
    // traitement des données !
     
    }
    Et donc aucune données s'affiche : je rentre même pas le while !!!!

    Quelqu'un à une piste ???

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon : 1ere question, est-ce que la requête fonctionne lorsque tu l'affiches et que tu la testes en dehors du script (dans PhpMyAdmin par exemple) ?


    Ensuite : tu utilises des requêtes préparées mais sans utiliser de paramètres. C'est comme prendre un caddie au supermarché et porter tes courses à la main au lieu des les mettre dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql1 = "SELECT anneeId,anneeLibelle FROM pr_annees WHERE anneeId = :anneeId";
    $req1 = $db->prepare($sql1);
    $req1->bindValue(':anneeId', $anneeId,PDO::PARAM_INT);
    $req1->execute();
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Salut

    Oui dans phpmyadmin cela fonctionne !!
    Quand à mettre des paramètres je t'avoue que je sais quel et surtout comment mettre des paramètres : d'habitude je mets des bindValue et c'est ok mais j'ai 2 paramètres (années et régionId) qui viennent de 2 tables différentes pour avoir les données d'une 3ème tables (les dossiers). Et ça je ne l'ai jamais fait : j"ai fait ds essais avant de poster mais sans résultat

    Cordialement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Celira t'a montré comment faire !
    Ensuite, il faut un peu de CURIOSITE et de RECHERCHE...

    exemple avec plusieurs paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql1 = "SELECT machin FROM la_table WHERE champ1 = :var1 AND champ2 = :var2 ";
    $req1 = $db->prepare($sql1);
    $req1->bindValue(':var1', $var1, PDO::PARAM_INT); // integer
    $req1->bindValue(':var2', $var2, PDO::PARAM_STR); // string
    $req1->execute();
    On peut aussi écrire (c'est EQUIVALENT) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql1 = "SELECT machin FROM la_table WHERE champ1 = :var1 AND champ2 = :var2 ";
    $req1 = $db->prepare($sql1);
    $req1->execute( array(
       ':var1' => $var1,
       ':var2' => $var2
    ) );

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Salut

    Construire une requête avec des bindValue ça je sais faire et c'est toi qui m'avais orienté la dessus : donc mettre des paramétrés y a pas de problème. d'ailleurs j'utilise plutôt la 1er façon plutôt que les arrays !!! (je ne sais pas quelle est la meilleure méthode d'ailleurs !!!)

    Non mon problème (celui que j'ai exposé lors de mon message initial) c'est que j'ai une requête avec un count et un group by : cette requête fonctionne quand je la fait dans phpmyadmin mais dans ma page php les résultats ne sont pas affichés : j'ai fait des echo et je n'arrive pas à rentrer dans le while : c'est celà mon problème !!

    Merci tout de même pour vos réponses

    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je veux bien te croire... sauf que tu ne le fais pas !

    Modifie $sql2 pour en faire une vraie requête préparée, avec bindValue.

    Compare avec ce que t'as donné Celira...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    Salut

    Bon j'ai regle mon problème

    l'erreur venait de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     WHERE YEAR(dossierDateEnregistrement)='$anneeId'
    qu'il fallait remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE YEAR(dossierDateEnregistrement)='$NomAannee'

    Je rentrais un id alors qu'il fallait un nom d'année genre 2018

    Cordialement

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/01/2010, 16h01
  2. [AC-2007] Afficher resultats requete dans un "pop up"
    Par Dadar dans le forum IHM
    Réponses: 0
    Dernier message: 08/10/2009, 15h10
  3. [MySQL] afficher resultat requete sur 3 colonnes
    Par thomason1407 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/03/2009, 11h38
  4. vba: afficher resultat requete sql
    Par ToTo develop dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/07/2008, 13h08
  5. Resultat requete count dans une variable en VBA
    Par langelot222 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/07/2007, 09h33

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