Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: aspkiddy le le 20-06-2011 a 21:02:43

Titre: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: aspkiddy le le 20-06-2011 a 21:02:43

Bonjour,

J’ai un bdd qui contient des tables et entre eux, il y a une relation...

tb_code_prmtn11 (qui contient les informations sur les gens)
id_resultat
fld_email_id ( FOREIGN KEY (`fld_email_id`) REFERENCES `tb_code_prmtn11_email` (`id_email`) ON DELETE NO ACTION ON UPDATE CASCADE;)


tb_code_prmtn11_email (qui contient les emails de gens)

fld_email_id
fld_nom_email



Alors, je vais afficher les emails dans un menu déroulant. Dans ce menu, il y a alors tous les courriels qui vient de la table "tb_code_prmtn11_email" mais je voudrais que quand on affiche les informations d'une personne

je veux que dans ce menu, son courriel soit automatiquement sélectionné parmi les autres options

Voici le message erreur :
Citation:
Warning: mysql_query() expects parameter 1 to be string, resource given in C:...........\verification\edit.php on line 53


Voici mon code :
[php]<?php

   // pour tester si variable id contient un valeur (je le recupere par GET)
echo $id;
   
?>--

// id toujours un valeur...

<select name="courriel_menu_" id="courriel_menu_" class="valid" onchange="submit()">
<?php
      // trouver le valeur du select qui se trouve dans 1er table et afficher l'email qui se trouve dans 2e table   
$res_courriel_select= mysql_query("SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
                           
          FROM $table_db td
                           
         INNER JOIN $table_db_email email
         
         ON td.fld_email_id = email.id_email
         
         WHERE td.id_resultat=$id");
         
   $rep_courriel_select = mysql_query($res_courriel_select, $cnx) or die( mysql_error() ) ; // LA LIGNE 53!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
         
         while($row=mysql_fetch_row($rep_courriel_select))
               {
                  
                  
                  
                  echo '<option selected=\"selected\" value="'.$row['fld_email_id'].'">'.$row['fld_nom_email'].'</option>';
               }
         
         

      // afficher les autres options
         $res_courriel_menu = " select DISTINCT id_email, fld_nom_email FROM $table_db_email ORDER BY fld_nom_email ";
         
         $rep_courriel_menu = mysql_query($res_courriel_menu, $cnx) or die( mysql_error() ) ;
         
         
         
while($affiche_contenu_courriel_menu = mysql_fetch_assoc($rep_courriel_menu)) {

            
            echo '<option value="'.$affiche_contenu_courriel_menu['id_email'].'"';
                           if($primes==$affiche_contenu_courriel_menu['fld_nom_email']){echo " selected";} // pour afficher la selection si on le change
                           echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
                           
                           
                     
            

}
?>
</select>
[/php]

Alors mon menu est vide :cry: et j'ai une alerte :oops: :
Warning: mysql_query() expects parameter 1 to be string, resource given in C:.....\edit.php on line 53

Titre: Re: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: Pad le le 20-06-2011 a 21:35:10

tu as deux mysql_query, alors qu'il ne le faut qu'une fois pour exécuter ta requête !

$res_courriel_select= mysql_query("SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email

FROM $table_db td

INNER JOIN $table_db_email email

ON td.fld_email_id = email.id_email

WHERE td.id_resultat=$id");

$rep_courriel_select = mysql_query($res_courriel_select, $cnx) or die( mysql_error() ) ; // LA LIGNE 53!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Titre: Re: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: aspkiddy le le 20-06-2011 a 21:47:24

Merci Pad,

J'ai rectifié :

Code:
$res_courriel_select= "SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
                            FROM $table_db td
                           
                            INNER JOIN $table_db_email email
                            ON td.fld_email_id = email.id_email
         
          WHERE td.id_resultat=$id";
         
         $rep_courriel_select = mysql_query($res_courriel_select, $cnx) or die( mysql_error() ) ;
         
         while($row=mysql_fetch_row($rep_courriel_select))


Ça marche... En fait mon menu contient tous les emails de ma table...

Par contre il n'y a pas une option (ni la bon option) a été sélectionnée...

et j'ai regardé le code source de la page sous FireFox , c'est vide :
exemple :

Code:
15--<select name="courriel_menu_new_cmpgn" id="courriel_menu_new_cmpgn" onchange="submit()">
<option selected=\"selected\" value=""></option><option value="toto">toto@toto.com</option>

Titre: Re: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: Pad le le 21-06-2011 a 05:30:20

met le morceau de code contenant ce "selected" qui fonctionne pas

Titre: Re: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: aspkiddy le le 21-06-2011 a 14:14:16

et voila :

Code:
<select name="courriel_menu_new_cmpgn" id="courriel_menu_new_cmpgn" onchange="submit()">
<?php
         //-------- affichage du menu avec la selection selon id
$res_courriel_select= "SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
                            FROM $table_db td
                           
                            INNER JOIN $table_db_email email
                            ON td.fld_email_id = email.id_email
         
          WHERE td.id_resultat=$id";
         
         $rep_courriel_select = mysql_query($res_courriel_select, $cnx) or die( mysql_error() ) ;
         
         while($row=mysql_fetch_row($rep_courriel_select))
               {
                  
                  
                  
                  echo '<option selected=\"selected\" value="'.$row['fld_email_id'].'">'.$row['fld_nom_email'].'</option>';
               }
         
         
//-------- affichage tous les autres options du menu

         $res_courriel_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
         
         $rep_courriel_menu = mysql_query($res_courriel_menu, $cnx) or die( mysql_error() ) ;
         
         
         
while($affiche_contenu_courriel_menu = mysql_fetch_assoc($rep_courriel_menu)) {

            
            echo '<option value="'.$affiche_contenu_courriel_menu['id_email'].'"';
                           if($primes==$affiche_contenu_courriel_menu['fld_nom_email']){echo " selected";} // pour re-afficher la selectionne si on change...
                           echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
                           
                           
                     
            

}
?>
</select>

Titre: Re: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: Pad le le 21-06-2011 a 18:53:28

y'a deux selected dans le code là, c'est pour ça que je t'ai demandé de mettre que la partie du selected qui fonctionne pas...

Titre: Re: Warning: mysql_query() expects parameter 1 to be string, resource given in
Posté par: aspkiddy le le 26-06-2011 a 21:11:54

Salut Pad,
En fin, Mon menu marche et affiche toutes les options existent sur la table (par variable : $table_db_email) avec le code suivant

Code:
<select name="email_menu" id="email_menu" onchange="submit()">
<?php
         
echo "<option selected=\"selected\" value=''>Choisir le nom</option>";


         $req_email_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
         
         $rep_email_menu = mysql_query($req_email_menu, $cnx) or die( mysql_error() ) ;
         
         
         
while($show_contenu_email_menu = mysql_fetch_assoc($rep_email_menu)) {

            
            echo '<option value="'.$show_contenu_email_menu['id_email'].'"';
            
            
            

                  
                  //if($primes==$show_contenu_email_menu['fld_nom_email']){echo " selected";} // pour afficher la selectionne
                           echo '>'.$show_contenu_email_menu['fld_nom_email'].' - '.$show_contenu_email_menu['fld_adresse_email'].'</option>';
                           
                           
                     
            

}
?>
</select>


Et voici le retour de code (en affichant "le code source de la page") que j'obtiens dans Firefox

Code:

<select name="email_menu" id="email_menu" onchange="submit()">

<option selected="selected" value=''>Choisir le nom</option><option value="tomo">TOTO MONO - toto.mono@test.com</option><option value="kito">KIKI TOTO - kiki.toto@test.com</option></select>

Et maintenant je vais ajouter quelques lignes dans mon code pour sélectionner une option de ce menu : cette option sélectionnée se trouve dans ma table table_db...

Code:
<select name="email_menu" id="email_menu" onchange="submit()">
<?php
         
echo "<option selected=\"selected\" value=''>Choisir le nom</option>";


         $req_email_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
         
         $rep_email_menu = mysql_query($req_email_menu, $cnx) or die( mysql_error() ) ;
         
         
         
while($show_contenu_email_menu = mysql_fetch_assoc($rep_email_menu)) {

            
            echo '<option value="'.$show_contenu_email_menu['id_email'].'"';
            
            
            
////////***************************************** selectionner option qui est inscrit dans la table
            
            $req_email_adress_menu_for_selected = "SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
                            FROM $table_db td
                           
                            INNER JOIN $table_db_email email
                            ON td.fld_email_id = email.id_email
         
          WHERE td.id_resultat=$id ";
          $rep_email_adress_menu_for_selected = mysql_query($req_email_adress_menu_for_selected, $cnx) or die( mysql_error() ) ;
             while($show_email_adress_menu_for_selected = mysql_fetch_assoc($rep_email_adress_menu_for_selected))
             {
               if($emailselected==$show_email_adress_menu['fld_email_id']){echo " selected";} //display to select an option!!!!!!!!!!!!!!!!
               }
            
/////--------------------------------
                  //if($primes==$show_contenu_email_menu['fld_nom_email']){echo " selected";} // pour afficher la selectionne
                           echo '>'.$show_contenu_email_menu['fld_nom_email'].' - '.$show_contenu_email_menu['fld_adresse_email'].'</option>';
                           
                           
                     
            

}
?>
</select>

Mon menu marche, mais sélectionne toutes les options pourtant dans mon bdd, il n'y a qu'une. Cela veut dire que mon code que j'ai ajouté n'est pas bon...

En affichant "le code source de la page" dans Firefox je vois que :


Code:
<select name="email_menu" id="email_menu" onchange="submit()">

<option selected="selected" value=''>Choisir le nom</option><option value="tomo" selected>TOTO MONO - toto.mono@test.com</option><option value="kito" selected>KIKI TOTO - kiki.toto@test.com</option></select>


Alors, comment peux-je afficher, dans mon menu, une option sélectionnée qui se trouve dans la table table_db, tout en affichant toute les options qui se trouvent dans une autre table (table_db_emai) ?


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.