Probleme de Mysql, en php

Bonjour!!

Voila, je me trouve confronter a une ereur sql, qui je ne comprend pas ...

voila mon code :

$reponce_sql = mysql_query ("SELECT * FROM membres WHERE membre_pseudo = '$pseudo'");
$donnees_sql = mysql_fetch_array("$reponse_sql");

ET php me dit :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\oskar\bas_de_la_page.php on line 12

Pourquoi?

Merci d'avence de me repondre!
Configuration: Windows XP
Internet Explorer 7.0

20 réponses

  1. Salut,

    Tu appels ta variable $reponce_sql et la ligne d'après $reponse_sql
    1. Ah ben non, sa marche toujour pas...
      1. C'est souvent dû à une erreur rencontré à l'exécution de la requête ou à la connexion à la base!
    2. sors le pseudo de ta requête:
      "SELECT * FROM ... where membre_pseudo=' ".$pseudo." ' "

      mysql a du mal parfois avec des variables qui ne sont pas concaténées
      1. Non, merci, mais c'etait pas sa, j'ai quand memem copier ton code, il est plus propre...

        D'auters idées?
        1. Donne le code complet (avec la connexion)
      2. <?php
        if(isset($_SESSION['pseudo']))
        {
        $pseudo = $_SESSION['pseudo'];
        $reponce_sql = mysql_query ("SELECT * FROM membres where membre_pseudo=' ".$pseudo." ' " ) or die(mysql_error);
        // $donnees_sql = mysql_fetch_array("$reponce_sql");
        if( $donnees_sql['membre_droitadmin'] = 1 )
        {
        ?>
        <li id="active"><a href="#" id="current">Administration</a>
        <ul class="navsouscontener">
        <li><a href="/oskar/admin/liste_news.php">Liste des News</a></li>
        <li><a href="/oskar/rediger_news.php">Rediger une news</a></li>
        <li><a href="#">Lien3</a></li>
        </ul>
        </li>
        <?php
        }
        }
        ?>

        Voila le code...

        Je vien de remarquer un truc, il me domnne une erueur, mais il m'aficher quand meme la partie de menu qui est dans le if $donnees_sql['membre_droitadmin'] = 1

        Pourquoi?
        1. la partie du menu s'affiche précisément parce que tu as réaffecté une valeur^^ tu n'as pas comparé, donc puisque tu as réaffecté, c'est toujours vrai, donc ça exécute ton if
      3. faut que tu fasses un while pour balayer le retour de ta bdd^^ sinon t'es sûr que ça marchera pas^^
        1. $sql="select * from membres where membre_pseudo='".$pseudo."'";
          $query=mysql_query($sql) or die(mysql_error());
          while($membres=mysql_fetch_array($query)) {
          //là tu mets toutes les instructions qui ont besoin de traiter avec les données que tu as récupérées de ta bdd, qui se prendront ainsi: $membres['nom_colonne']
          ex:
          if($membres['droit_admin']==1) {
          //faire truc
          }
          }
          1. mais non, je veut pas faire sa!

            Je veut juste verifier si ce chant a la colne xxx est egal a 1, si il est agal, alor tu afiche le reste UNE SEULE FOIS.

            ton script l'aficherait autant de fois qu'il y a de chant avec la colone xxx egal a 1.
            1. quand tu compares des données, utilises == pour comparer le contenu, et === pour comparer l'égalité de contenu et de type de variables. Un simple = ne comparera rien du tout, il ne fera que réaffecter une valeur à une variable
              1. bien sûr que non, puisque que tu as sélectionné que les données contenant l'utilisateur $pseudo avec le where de ta requête
                1. Je vien de le faire, mais sa ne marche toujour pas...

                  Merci quand meme de tout ces conseil.
                  1. Y a toujours pas la connexion!!

                    Ton code du style :
                    if (!$db = @mysql_connect(DBHOST,DBUSER,DBPASSWD))
                    return FALSE; # pas de connexion
                    if (!@mysql_select_db(DBNAME, $db)) {
                    @mysql_close($db);
                    return FALSE; # bdd introuvable
                    }

                    ?
                2. no worries^^

                  tes droits d'utilisateurs sont toujours en chiffres?
                  Ca affiche quoi maintenant?
                  1. oui bien sur, des 0 et des 1.

                    la il me semble que c'est bon... attend, je verifie que tout va bien, et je te dit
                    1. j't'en prie^^

                      J'me permet de te recommander un apprentissage plus rigoureux du php et de ses manipulations de base, elles ne sont pas compliquées, pas nombreuses, et permettent de faire un paquet de truc. Et si tu mets l'accent sur une pratique rigoureuse et disciplinée du code, tu avanceras plus vite et seras nettement moins confronté à ce genre de petits soucis^^ (qui freinent le travail et usent les nerfs quand on commence :D on s'en souvient tous^^)