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 :

[SQL] Problème avec script de pagination et requête sql sur deux tables


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut [SQL] Problème avec script de pagination et requête sql sur deux tables
    Bonjour,

    J'ai un problème avec un script de pagination, censé compter le nombre de pages de résultats pour une requête signifiant :
    "Compte UNE FOIS les sujets pour lesquels le membre a posté au moins une réponse, A CONDITION que le sujet lui même n'ait pas été posté par le membre."

    Comme je n'arrivais pas à faire la requête, j'ai fait cela :
    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
    $totalRep="SELECT 
    sousCommentaire.idCom AS clef
    FROM sousCommentaire
    WHERE sousCommentaire.idMembre='".$numeroConnexion."'";
    $resultat=mysql_query("$affiche");
    while($R = mysql_fetch_array($resultat))
    {
    $tri="SELECT DISTINCT 
    commentaire.id
    FROM commentaire
    WHERE commentaire.idMembre!='".$numeroConnexion."' 
    AND commentaire.id='".$R[clef]."'"
    $result = mysql_query("$tri") ;
    $row = mysql_fetch_row($result);
    ...script de pagination
    ;}
    
    Explication :
    sujet = table commentaire
    réponse = table sousCommentaire
    idMembre= id du membre ayant posté le sujet ou la réponse
    sousCommentaire.idCom=commentaire.id
    Alors contrairement à toutes les autres requêtes que j'ai essayé, cette requête semble me renvoyer le bon résultat.
    Par contre le $row semble ne pas tout récupérer, puisqu'il y a 13 sujets à compter, donc deux pages à afficher à raison de 10 résultats par pages.
    Mais ça m'affiche les 10 premiers sur une seule page, point final, le script e pagination d'après ne fonctionne pas.
    J'ai essayé de fermer la boucle while juste après le mysql_query, ça ne fonctionne pas non plus.

    Bon voilà, je viens mander votre aide

    **EDIT**
    Par exemple avant, j'avais essayé ça comme requête, mais par contre là ça me renvoyait toute la liste des commentaires auxquels le membre avait participé même s'ils étaient initiés par lui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT 
    commentaire.id
    FROM sousCommentaire,commentaire
    WHERE sousCommentaire.idMembre='".$numeroConnexion."' 
    AND sousCommentaire.idCom=commentaire.id 
    AND commentaire.idMembre != sousCcommentaire.idMembre'
    Donc il s'agit soit de corriger le script php, soit peut être si vous savez le faire, de transformer les deux requêtes en une seule, auquel cas le script devrait bien fonctionner (le script de pagination est bon il fonctionne ailleurs).
    C'est pas parce que j'ai tort que vous avez raison.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  
    commentaire.id
    FROM commentaire,sousCommentaire
    WHERE commentaire.id= sousCommentaire.idCom
    AND commentaire.idMembre!='".$numeroConnexion."' 
    AND sousCommentaire.idMembre='".$numeroConnexion."' group by commentaire.id
    ca ca marche pas???
    Stay in Bed .. Save Energy

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Salut boo64 !

    Non ça ne fonctionne pas

    La condition suivante ne semble pas être prise en compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commentaire.idMembre!='".$numeroConnexion."'
    ça me renvoit le même nombre de page que pour la requête "choisir tous les commentaire où idMembre=$numeroConnexion" .
    Le script de pagination indique donc 3 pages alors qu'il ne devrait y en avoir que deux pour la requête souhaitée.

    **edit**
    C'est bizarre j'ai une autre requête qui dit va chercher les commentaires ou l'id est celui du membre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $totalRep="SELECT count(id) AS id
      FROM commentaire 
    WHERE idMembre='".$numeroConnexion."'"
    et bien cette requête ne fonctionne pas si je remplace count()id par distinct id, ça me fait une erreur mysql_fetch_row.

    Et si c'était mysql_num_rows et pas mysql_fetch_rows ?
    C'est pas parce que j'ai tort que vous avez raison.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    vous auriez pu voir que dans le script tout en haut la variable de mysql_query est pas celle de la requête...

    M'enfin de toute façon ça fonctionne pas quand même.
    C'est pas parce que j'ai tort que vous avez raison.

Discussions similaires

  1. Requête sql problème avec un 'LIKE'
    Par Farow dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/10/2011, 09h31
  2. Requête portant sur deux tables et deux champs
    Par OliviaS dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/05/2008, 19h37
  3. [SQL] problème avec possible utilisation du IF de SQL
    Par mdr_cedrick dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/02/2008, 19h12
  4. [Requête] Jointure sur deux tables.
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/11/2007, 11h36
  5. requête SQL problème avec relation N-N
    Par p'tite Sandrine dans le forum Requêtes et SQL.
    Réponses: 23
    Dernier message: 05/10/2007, 12h08

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