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 :

Affichage de résultat plusieurs fois [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Par défaut Affichage de résultat plusieurs fois
    Bonjour à tous,

    je développe une petite application de stockage de photo.
    Le problème vient de 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
    foreach($mots as $mot)
            {
    $sql.="SELECT * FROM afficher,doc,personnel WHERE  afficher.idqrqc = doc.idqrqc and doc.idqrqc=personnel.idqrqc and afficher.idqrqc=personnel.idqrqc and titre LIKE '%$mot%'
     
    UNION ";
     }
    //quand la boucle est terminée, il faut enlever le dernier union
    $sql=substr($sql,0,-6);
     
     
    $req = mysql_query($sql, $cnx) 
     		   or 
     		  die("Pb dans la requête : " . mysql_error($cnx));
    		 }
     
    $listeqrqc = mysql_fetch_object($req);
    Quand je fais une boucle while sur listeqrqc pour affiché les résultats sous forme de tableau, tous les résultats sont affichés plusieres fois.

    Au niveau de conception de la BD
    j'ai 3 tables, je récupere l'id de la premiere table (afficher) et je l'injecte dans la 2eme et 3eme table.

    Merci.

  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
    Pourquoi faire une union plutôt que des OR ?

    De plus je vois mal la structure de ta table car tu lies personnel avec doc et afficher et doc et afficher encore entre eux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Par défaut
    Citation Envoyé par sabotage Voir le message

    Pourquoi faire une union plutôt que des OR ?
    je ne pense pas avoir les compétences pour te répondre

    De plus je vois mal la structure de ta table car tu lies personnel avec doc et afficher et doc et afficher encore entre eux.
    J'ai un formulaire qui alimente les 3 tables. Pour afficher tous le résultats, j'ai récupéré le idqrqc de la table afficher (AI) et je l'ai injecter dans les 2 autres tables (pour avoir un lien).
    je sais que peut etre c'est pas la bonne façon, mais ça a marché qu'on j'avais seulment 2 tables.
    exmple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql.="SELECT * FROM afficher,doc WHERE  afficher.idqrqc = doc.idqrqc  and titre LIKE '%$mot%'
     
    UNION "
    ;

    je ne comprend pas pour quoi ça marche pas pour 3.

  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
    Si la clef primaire est dans "afficher" alors "afficher" est joint à "personnel" et à "doc" mais pas "personnel" avec "doc" en plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $sql.="SELECT * FROM afficher
    JOIN doc ON afficher.idqrqc = doc.idqrqc
    JOIN personnel ON afficher.idqrqc=personnel.idqrqc";
     
    foreach($mots as $mot)  {
         $where_mots[] = 'titre LIKE %' . mysql_real_escape_string($mot) . '%';
    }
     
    if (isset($where_mots)) {
         $sql .= ' WHERE ' . implode (' OR ', $where_mots);
    }
     
    $req = mysql_query($sql, $cnx)
    Au passage l'extension mysql_ est obsolète, utilise mysqli ou PDO.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Par défaut
    Merci pour l'idée de remplacer union par or et pour mysql_

    Par contre je n'ai toujours par réussi à régler le problème d'affichage.

  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
    Tu ne nous a pas montré le code d'affichage.

    Tu as testé la requête directement dans PHPmyadmin pour voir si le problème venait des résultat ou de l'affichage d'ailleurs ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [MySQL] affichage des résultats de plusieurs requêtes
    Par Mathieu72 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/02/2007, 02h19
  2. [MySQL] Affichage des résultats d'une requête sur plusieurs pages
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 13h24
  3. Réponses: 1
    Dernier message: 12/06/2006, 13h34
  4. [MySQL] Affichage impossible de plusieurs résultats
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 21/04/2006, 19h40
  5. [MySQL] Parcourir plusieurs fois le résultat de ma requête
    Par borgfabr dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/12/2005, 09h54

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