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 le résultat d'une requete Mysql


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut Afficher le résultat d'une requete Mysql
    Bonjour,

    Après avoir reçu de l'aide dans la catégorie Base de donnée>Requète du forum, il m'a été communiqué une requète qui me permet de compté le nombre de photos enregistré dans ma base de données mysql pour chacun de mes inscrit, la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    "SELECT    id
        ,    CASE WHEN TB_photo1 IS NULL THEN 0 WHEN TRIM(TB_photo1) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo2 IS NULL THEN 0 WHEN TRIM(TB_photo2) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo3 IS NULL THEN 0 WHEN TRIM(TB_photo3) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo4 IS NULL THEN 0 WHEN TRIM(TB_photo4) = '' THEN 0 ELSE 1 END AS nb_photos
    FROM    TB_users_temp"
    étant débutant je pensait que je devait d'abord crée une variable du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total_photos = ma_requete
    qui me permet ensuite de l'afficher de cette maniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $total_photos; ?>
    et la je ne comprend pas comment afficher le résultat de la requete... étant donné que il n'y a pas de "$" devant j'ai essayé en mettant simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo nb_photos; ?>
    j'ai aussi essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $nb_photos; ?>
    mais je n'arrive pas a afficher le résultat.

    Merci par avance de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Reprenons tout depuis le début : il faut evidemment utiliser les fonctions PHP qui dialoguent avec une base de donnée mysql
    http://php.developpez.com/faq/?page=...queteselection

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    hum... oui effectivement ma requete est prete mais pas de code php présent pour la traiter, merci pour le lien je vais tester demain car la trop fatigué

    merci encore

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    apres m'etre référé au tuto, j'ai appliquer le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $requete = "SELECT    id
        ,    CASE WHEN TB_photo1 IS NULL THEN 0 WHEN TRIM(TB_photo1) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo2 IS NULL THEN 0 WHEN TRIM(TB_photo2) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo3 IS NULL THEN 0 WHEN TRIM(TB_photo3) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo4 IS NULL THEN 0 WHEN TRIM(TB_photo4) = '' THEN 0 ELSE 1 END AS nb_photos
    FROM    TB_users_temp";
    $resultat = mysql_query($requete) or die("erreur dans la requete : " . $requete);
    j'affiche le résultat avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $resultat; ?>
    malheureusement j'obtien le message suivant a l'endroit ou le résultat devrait s'afficher :
    et ainsi de suite en fonction de l'id, j'ai du mal fair quelque chose mais la ca a déja un peu avancé, je ne voit pas du tout ou est mon erreure

    cordialement

  5. #5
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 153
    Points
    153
    Par défaut
    salut essaye ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
           $requete = "SELECT    id
        ,    CASE WHEN TB_photo1 IS NULL THEN 0 WHEN TRIM(TB_photo1) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo2 IS NULL THEN 0 WHEN TRIM(TB_photo2) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo3 IS NULL THEN 0 WHEN TRIM(TB_photo3) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo4 IS NULL THEN 0 WHEN TRIM(TB_photo4) = '' THEN 0 ELSE 1 END AS nb_photos
    FROM    TB_users_temp";
    $resultat = mysql_query($requete) or die("erreur dans la requete : " . $requete);
      while ($ligne = odbc_fetch_array($resultat)) {
      echo $ligne[0];
      }

  6. #6
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 153
    Points
    153
    Par défaut
    mysql_fetch_array pardon

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    bonjour,

    merci de votre aide j'ai tester la requete indépendament de mon code et voici ce que j'obtient comme résultat :
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
           $requete = "SELECT    id
        ,    CASE WHEN TB_photo1 IS NULL THEN 0 WHEN TRIM(TB_photo1) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo2 IS NULL THEN 0 WHEN TRIM(TB_photo2) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo3 IS NULL THEN 0 WHEN TRIM(TB_photo3) = '' THEN 0 ELSE 1 END
        +    CASE WHEN TB_photo4 IS NULL THEN 0 WHEN TRIM(TB_photo4) = '' THEN 0 ELSE 1 END AS nb_photos
    FROM    TB_users_temp";
    $resultat = mysql_query($requete) or die("erreur dans la requete : " . $requete);
      while ($ligne = mysql_fetch_array($resultat)) {
      echo $ligne[0];
      }
    ?>
    j'ai mal fait quelque chose ? ca m'affiche bien un résultat mais je ne sais pas trop ce que c'est

    merci

  8. #8
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 153
    Points
    153
    Par défaut
    la je dirai qu il fau plancher sur la logique de ta requete sql car en php pour afficher le resultat d'une requete ca se fait comme ca

  9. #9
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 153
    Points
    153
    Par défaut
    les chiffres que tu vois sont les ID que tu choisi dans ta requete

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    merci de votre aide mais le je crois que je vais abandonner, je suis déçu car j'ai réussi a fair bien plus dure sur mon site que cette requette qui pourtant ne me parait pas compliqué ce n'est qu'une adition de champs et pourtant....
    champ1+champ2+champ3+champ4 = ?? pourtant personne n'a de solution (qui fonctionne) donc la je crois que je vais abandonner
    je suis déçu mais bon tant pit pour moi

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Une fois de plus, je vais répondre à côté de la question.
    C'est beaucoup d'énergie gaspillée pour créer une requête tordue, alors que la structure des tables n'est pas adéquate.
    En utilisant 2 tables : 'user' et 'photo', une requête toute simple est suffisante.
    Fais un essai dans phpmyadmin avec ce qui suit :
    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
    34
     
    CREATE TABLE `user` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `nom` char(10) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    INSERT INTO `user` (`id`, `nom`) VALUES 
    (1, 'user 1'),
    (2, 'user 2'),
    (3, 'user 3'),
    (4, 'user 4'),
    (5, 'user 5');
     
    CREATE TABLE `photo` (
      `id_user` int(10) unsigned NOT NULL,
      `photo` char(10) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    INSERT INTO `photo` (`id_user`, `photo`) VALUES 
    (1, 'photo 1'),
    (1, 'photo 2'),
    (2, 'photo 1'),
    (2, 'photo 2'),
    (2, 'photo 3'),
    (2, 'photo 4'),
    (3, 'photo 1'),
    (4, 'photo 1'),
    (4, 'photo 2'),
    (4, 'photo 3'),
    (5, 'photo 1'),
    (5, 'photo 2'),
    (5, 'photo 3'),
    (5, 'photo 4');
    La requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT nom, COUNT(id_user) as nb_photo
    FROM photo
    INNER JOIN user ON id_user = id
    GROUP BY id_user
    Le résultat :

    nom nb_photo
    user 1 2
    user 2 4
    user 3 1
    user 4 3
    user 5 4

  12. #12
    Membre régulier
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 82
    Points
    82
    Par défaut
    c'est normal que la solution ne te donne pas le résultat attendu

    puisque il affiche $ligne[0] (l'id) mais pas $ligne[1] qui est ce que tu attend !!!

    de plus pour débugger :

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die("erreur dans la requete : " . $requete)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die("erreur dans la requete : " . $requete.'<br/>erreur: '.mysql_error())
    comme ca tu auras l'erreur affichée (au cas où tu en ai besoin plus tard !!!)

Discussions similaires

  1. afficher le résultat d'une requete dans une datagrid
    Par awatif dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/09/2006, 15h57
  2. afficher les resultats d'une requete mysql sur 3 colonnes
    Par harlock59 dans le forum Requêtes
    Réponses: 7
    Dernier message: 24/12/2005, 15h38
  3. Réponses: 3
    Dernier message: 25/11/2005, 15h51
  4. [QReport] Afficher le résultat d'une requete
    Par PFX dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/05/2005, 15h38
  5. résultat d'une requete mysql
    Par noinneh dans le forum MFC
    Réponses: 4
    Dernier message: 03/03/2005, 17h54

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