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 :

Utilisation résultats d'un double count requête PDO [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2003
    Messages : 11
    Par défaut Utilisation résultats d'un double count requête PDO
    Bonjour,
    J'ai une requête qui compte 2 colonnes et qui me remonte bien les variables attendues $A et $B. Vérifiable avec le print_r mais dans mon if ensuite, j'ai les messages :
    Warning: Use of undefined constant A - assumed 'A' (this will throw an Error in a future version of PHP) in .....php on line 40

    Warning: Use of undefined constant B - assumed 'B' (this will throw an Error in a future version of PHP) in ....php on line 40

    Notice: Undefined index: B in /home/anegjxuk/public_html/S2A/Adm/Validation_Inscription2.php on line 40
    l'echo ensuite est bon.

    Le code :
    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
        $sql1 ="SELECT COUNT(DISTINCT COL1) as A, COUNT(DISTINCT ID) as B FROM Table";  
     
         //Execution de la requete
         try{
         $req1 = $bdd->prepare($sql1);
         $req1->execute();
     
         }catch(Exception $e){
    		// en cas d'erreur :
    		echo " <br>Erreur ! ".$e->getMessage();
    		echo " <br>Les datas : " ;
    		print_r($datas);
    	}
     
         //on récupère les résultats
         $result1 = $req1->fetchAll();
     
        //pour voir le résultat de la requête
            echo "<pre>";
            print_r($result1);
            echo "</pre>";
     
    if ($result1[A]=$result1[B])
    { echo ("A=B <br>");
    }
    else{
       echo ("A<>B<br>"); 
    }
    Merci d'avance à celle ou celui qui pourra éclairer ma lanterne de bricoleur.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    Rajoutez des apostrophes ou guillemets autour de A et B $result1["A"]==$result1["B"] et un deuxième signe égale puisque c'est une comparaison de variables.

  3. #3
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2003
    Messages : 11
    Par défaut
    Bonjour Toufik83.
    merci beaucoup. Cela m'a corrigé les premières erreurs, mais j'ai toujours la 3ème qui maintenant apparait pour les 2 variables.

    Notice: Undefined index: A in.....php on line 40

    Notice: Undefined index: B in .....php on line 40
    La ligne 40 est celle du if...
    mon pb est certainement basique pour un érudit que je ne suis pas ;-(

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    fetchAll retourne un tableau, il faut donc préciser l'index [0] pour accéder à ses valeurs : if ($result1[0]['A']==$result1[0]["B"]), sinon vous devez utiliser fetch au lieu de fetchAll puisque c'est seulement une seule ligne à récupérer.

    Avec fetch, ça fonctionne sans l'index [0].

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/03/2008, 10h38
  2. [LabView 8.2] Utilisation d'un "Gated-Event Counting"
    Par Fredo_L dans le forum LabVIEW
    Réponses: 0
    Dernier message: 19/12/2007, 15h13
  3. [debutant] utilisation d'une fonction predefini "count"
    Par le_voisin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2007, 06h22
  4. Réponses: 2
    Dernier message: 20/12/2006, 16h12
  5. Réponses: 4
    Dernier message: 12/09/2003, 11h38

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