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 :

If empeche affichage des données


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut If empeche affichage des données
    Bonjour,

    J'ai un petit soucis avec mon If lorsque je l'inclus dans ma page ma requête ne m'affiche que le premier résultat qu'elle trouve.

    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
    <?php
     $sql2 = "SELECT COUNT(commentaires.num_com) AS com, commentaires.nom_dep, commentaires.com_dep,commentaires.num_photo, photos.num_photo, photos.nom_photo, photos.img_photo, photos.vig_photo, photos.ouverture_photo, photos.vitesse_photo, photos.focale_photo, photos.iso_photo, photos.type_photo, photos.num_album
              FROM commentaires
              JOIN photos ON commentaires.num_photo = photos.num_photo
              WHERE photos.num_photo = ".(int)$_GET['numphoto'];
             $result2 = mysql_query($sql2) or die ('Erreur SQL : impossible d\'effectuer la requête : <br />'.$sql2);         		    
    		  for($i=0;$i<mysql_num_rows($result2);$i++)
             {
              $row2=mysql_fetch_assoc($result2);
    if ($row2['com'] == 0) { }
     
    else {
    echo '<tr>';
    echo '<td width="610" height="10" background="images/menu/espaceh.png"></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td width="610" height="20" background="images/menu/com01L.png" align="left" valign="middle"><span class="exifs">&nbsp;D&eacute;posant : <span class="titre">'. $row2['nom_dep'] .'</span></span></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td width="610" height="76" background="images/menu/com02L.png" valign="top">
          <table><tr><td width="1"></td>
    	  <td><span class="texte">'. $row2['com_dep'] .'</span></td>';
    echo '</tr>';
    echo '</table>';
    } }
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    echo '</td>';
    echo '</tr>';
    echo '</table>';       
    ?>
    Merci pour 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
    Par défaut
    Tu tout remplacer par un simple while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $result2 = mysql_query($sql2);
    while ($row2=mysql_fetch_assoc($result2)) {
    echo '<tr>';
    echo '<td width="610" height="10" background="images/menu/espaceh.png"></td>';
    // etc.
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    J'ai remplacé mon for par un while mais ça n'a rien changé je ne vois que le premier résultat.

  4. #4
    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
    Par défaut
    Fais un echo de ta requête et teste la dans phpmyadmin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    Quand je l'affiche ça me met Ressourceid#5 et quand je l'execute ça me dit qu'il y a un soucis au niveau de mon .(int)$_GET['numphoto'] alors que dans d'autres pages je l'ai utilisé sans aucun soucis.

  6. #6
    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
    Par défaut
    C'est $sql2 qu'il faut afficher, pas $result2.

    Pour l'erreur ca serait plus clair si tu nous la retranscrivais intégralement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    Donc j'ai fait ma requeête la dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(commentaires.num_com) AS com, commentaires.nom_dep, commentaires.com_dep,commentaires.num_photo, photos.num_photo, photos.nom_photo, photos.img_photo, photos.vig_photo, photos.ouverture_photo, photos.vitesse_photo, photos.focale_photo, photos.iso_photo, photos.type_photo, photos.num_album
              FROM commentaires
              JOIN photos ON commentaires.num_photo = photos.num_photo
              WHERE photos.num_photo = ".(int)$_GET['numphoto'];
    Et il me met ça

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '".(int)$_GET['numphoto']' at line 4
    Et quand je fais un echo de $sql2 il me met ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(commentaires.num_com) AS com, commentaires.nom_dep, commentaires.com_dep,commentaires.num_photo, photos.num_photo, photos.nom_photo, photos.img_photo, photos.vig_photo, photos.ouverture_photo, photos.vitesse_photo, photos.focale_photo, photos.iso_photo, photos.type_photo, photos.num_album FROM commentaires JOIN photos ON commentaires.num_photo = photos.num_photo WHERE photos.num_photo = 7
    Donc à priori il récupère bien le num_photo

  8. #8
    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
    Par défaut
    C'est version interpretée qu'il faut executer dans phpmyadmin pas la version avec du code PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    C'est à dire version interprétée?

  10. #10
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Ce que veut dire sabotage c'est que phpmyadmin ne comprends pas le PHP donc la version interprétée corresponds à la valeur correspondante à ta variable php.

    Pour répondre à ton problème, ce que tu obtiens est tout à fait normal. Avec ta requête actuelle ton mysql_num_rows sera toujours égal à 1.
    En effet tu utilises la fonction count() qui est une fonction de regroupement en MySQL. Ce que fait ta requête c'est te retourner dans ta première colonne le nombre d'enregistrements contenus dans ta table qui ont pour nombre de photos 7. Le deuxième champs aura pour valeur celui du premier enregistrement ou du dernier (sait plus) comptabilisé par count(). Pour résoudre ton problème donc, il te faut utiliser une sous requête.

    ++

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    Donc si j'ai bien tout compris dans ma petite tête

    il faut que j'utilise une seconde requête pour l'affichage de mes résultats.

  12. #12
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Non, tu n'es pas obligé Une sous-requête est une instruction select dans une autre instruction select. Il te faut juste rédiger la requête adaptée à tes besoins. Je t'invite à jeter un oeil au manuel de MySQL. Sinon, si tu n'y arrives pas, reviens sur le fofo on te donnera un coup de main.

    PS: Je t'aide un peu plus, tu n'as pas besoin de la fonction count() dans ta requête mySQL vu que tu as mysql_num_rows en PHP qui te donne l'info. Donc une requête normale devrait suffire^^. Si tu tiens toujours à utiliser la fonction count() dans ta requête et que tu n'y arrives pas, fait moi signe donc.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Par défaut
    Merci pour ton aide je te redis quoi dans une semaine je pars en vacance demain matin donc je vous refais signe.

    Un grand Merci à tous

Discussions similaires

  1. [MySQL] Affichage des données d'une base
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 01/02/2006, 16h35
  2. [Tableaux] Affichage des données par lot
    Par randriarabe dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2005, 08h23
  3. pb d'affichage des données
    Par new_wave dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 03/11/2005, 17h31
  4. TDBCtrlGrid - Affichage des données
    Par audreyb dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/10/2004, 13h10
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07

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