Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec une requète SQL

Select imbriqué...

    18 février 2007 à 23:38:08

    Bonsoir, j'ai un problème avec une requète SQL qui ne fonctionne pas. Voilà une brève explication:
    En gros un membre poste une news qui peut être modifiée par un autre membre (ou le même). Lors d'une modification, on enregistre dans la base de donnée la date, l'id de la news modifiée, et l'id du membre qui a modifié la news, puis au final, à l'affichage de la news on affiche qui l'a posté et à quelle date, mais aussi qui l'a modifiée et à quelle date. Alors j'ai fait les test et si j'ai une seule news ça fonctionne parfaitement, mais à partir du moment où j'en ai 2 ou plus alors il me ressort l'erreur suivante à l'endroit où il doit afficher la modification, et pour toutes les news:

    Citation : Pas de titre

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/136/sdb/0/6/abmot/news.php on line 17



    La ligne 17 est celle où il y a les select imbriqué:

    <?php
                    //Connexion à la BDD

                    //Recherche des 5 dernières news postées. La jointure sert à rechercher le nom du membre dans la table membre
                    $recherche = mysql_query("SELECT * FROM news n, membre m WHERE n.id_membre = m.id_membre ORDER BY id_news DESC LIMIT 5");
                    //Affichage des news
                    while ($resultat = (mysql_fetch_array($recherche)))
                    {
                            echo "<h4>". $resultat['titre_news'] ."</h4><br />";
                            echo "Postées le ". $resultat['date_news'] . " par ". $resultat['pseudo_membre'] .".<br />";
                            echo $resultat['contenu_news'] . "<br />";
                            //Recherche s'il existe une modification. Le select imbriqué sert à voir s'il existe un id_news dans la table news identique à l'un de ceux de la table modifier_news
                            $recherche_modif = mysql_query("SELECT * FROM modifier_news m, membre WHERE m.id_membre = membre.id_membre AND m.id_news = (SELECT id_news FROM news)");
                            while ($resultat_modif = mysql_fetch_array($recherche_modif)) //LIGNE 17
                            {       
                                    echo "Dernière modification le " . $resultat_modif['derniere_modif'] . " par " . $resultat_modif['pseudo_membre'] . ".";
                            }
                            echo "<hr />";
                    }
                   
            ?>


    Sinon je suis obligé de jouer avec toutes ces tables puisque je suis un MCD qui m'a généré ma table, donc non je ne peux pas mettre toutes les info dans la même table pour faciliter tous ça ^^

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2007 à 0:03:53

      Je suis pas certain que mySQL comprenne ça mais la bonne syntaxe pour ta requête est la suivante :

      $recherche_modif = mysql_query("SELECT * FROM modifier_news m, membre WHERE m.id_membre = membre.id_membre AND m.id_news IS IN (SELECT id_news FROM news)");
      • Partager sur Facebook
      • Partager sur Twitter
        19 février 2007 à 0:21:20

        Merci duael c'était presque ça mais en fait après recherche c'était in tous simplement
        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec une requète SQL

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown