PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 20-06-2011 19:50:27

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

[Irresolvable] Warning: mysql_query() expects parameter 1 .....

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 :

Warning: mysql_query() expects parameter 1 to be string, resource given in C:\inetpub\wwwroot\applications_web\apps_code_promotion\verification\edit.php on line 53

Voic mon code :

<?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 selectionne si on le change
                  echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
                 
                 
             
       

            }
        ?>
    </select>

Alors mon menu est vide sad et j'ai une alerte:/ :
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\inetpub\wwwroot\applications_web\apps_code_promotion\verification\edit.php on line 53


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#2 20-06-2011 20:39:43

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

$res_courriel_select

$rep_courriel_select



put1, qd allez vous faire du code lisible grrrrrrrrrrrrrrrrrrrrrr yikes


a++

Hors ligne

#3 20-06-2011 20:50:35

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

hummmm

j'avais deux mysql_query, alors qu'il ne le faut qu'une fois pour exécuter la requête


J'ai rectifié :

 $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 :

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>

Dernière modification par phpdos (20-06-2011 20:50:52)


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#4 20-06-2011 22:07:40

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Merci d'utiliser la coloration syntaxique. Vous ne savez pas comment faire?

Aie... ca commence mal..  pour du code php "{code=php}...  {/code}"  sans les guillemets bien entendu, pour du mysql "{code=MySQL}...{/code}" et ainsi de suite.. en n'oubliant pas de remplacer les acolades par des crochets hein (juste au cas où).

Une fois les modifs faites, peut être on commencera à lire d'un peu plus près, car la ca pique les yeux et on a pas forcément le temps d'y consacrer le triple de temps...

Dernière modification par Jc (20-06-2011 22:08:41)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 21-06-2011 13:20:54

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Voici mon code en PHP qui contient aussi un peu de HTML et mySql, mais je vais fermer ce ticket si cela est un casse-tête pour vous...

<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>

Dernière modification par phpdos (21-06-2011 13:21:45)


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#6 21-06-2011 20:03:08

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Encore moi : Je vais expliquer autrement :

<select name="courriel_menu_new_cmpgn" id="courriel_menu_new_cmpgn" onchange="submit()">
      <?php

     
           //-------- affichage l'option selectionne du menu DONNÉE selectionnée vient de bd table table_db td ($table_db td )

      $req_courriel_menu =   " 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_menu =  mysql_query($req_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['fld_nom_email'].'"';
                  if($emailss==$affiche_contenu_courriel_menu['fld_email_id']){echo " selected";} // pour afficher la selectionne si on change...
                  echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
                 
            }
        ?>
    </select>

Alors, le code ci-dessus, voit le champ « fld_email_id » dans la table (alias) « td » et trouve le résultat ensuite compare la valeur du résultat dans la table  (alias) « email » et trouve sa correspondance dans le champ « fld_nom_email » et affiche ce nom dans le menu comme une option séléctionnée.
   
    Jusqu'au tout va bien...

voici mes 2 table

tb_code_prmtn11 (qui contient les informations sur les gens) c'est l'alias "td" dans le code
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) son alias c'est "email"

fld_email_id
[b)]fld_nom_email[/b]

[font=Verdana]Ma question :
Après avoir affiché le nom de la personne dans mon menu comme l'option sélectionnée, comment  peux- je chercher tous les autres noms qui se trouve dans le champ "fld_nom_email" et les afficher comme les options non sélectionnées dans LE MÊME MENU?
[/font]


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#7 21-06-2011 20:10:26

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonsoir,

Heureusement que tu es là pour nous expliquer ton code, j'avais rien compris du tout personnellement. Vu que tu expliques si bien, j'attends avec impatience tes explications sur ta solution pour le résoudre.

Cordialement,

Jc.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#8 21-06-2011 20:19:25

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Salut Jc, hmm
Ha bon, alors là, je suis triste puisque je suis un cl......
En fait, un menu déroulant affiche plusieurs options et une option sélectionnée, n'est-ce pas ?

Je suis capable d'afficher option sélectionnée dans mon menu parce que cette information se trouve bien dans la 1re table (alias td)
est ce que je peux aussi afficher les autres options (non sélectionnées) qui se trouve dans une autre table (qui est sous l'alias email) ? Comment je peux faire ?


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#9 21-06-2011 20:41:39

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

décidement, j'dois vieillir, je n'arrive plus à suivre hmm:/
a++

Hors ligne

#10 21-06-2011 20:45:38

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Je ne ferai pas de commentaires..


$a_msg='<select name="xx" tabindex="xx" class="xx" />';
$a_msg .='<option value="00">---</option>';
$req_courriel_menu=" "; // ta requête machin chose
$num_row = mysql_num_rows($req_courriel_menu);
if ($num_row){
      while($row = mysql_fetch_array($req_courriel_menu)){
          $nom_email = $row['fld_nom_email'];
          $id_email = $row['fld_email_id'];
          if ($emailss==$id_email){$a_msg .="<option value=\"$id_email\" selected=\"selected\">$nom_email</option>";}
          else {$a_msg .="<option value=\"$id_email\">$nom_email</option>"; }
     }
}
$a_msg .='</select>';
echo $a_msg;
 

Et j'ai fait encore un effort, ca fait plus d'un an que je n'utilise que PDO... penses-y bientôt PHP 6 (déjà dispo chez OVH).

Dernière modification par Jc (21-06-2011 21:00:58)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#11 21-06-2011 21:12:46

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Si, je vais tout de même faire un commentaire.

Phpdos est un cl.... qui en plus ne dit jamais merci roll

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#12 21-06-2011 21:50:28

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

C'est moi ou c'est pas la fête que de la musique ce soir ?

Je suis fatigué d'un coup, là !

Vivement les vacances puis la retraite !


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#13 22-06-2011 11:22:42

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Une info pour Phpdos,

Le chargement de ton select tu n'as besoin de le faire qu'une fois à partir de ta base de données, ensuite si tu changes d'utilisateur, il faut mettre à jour le select au niveau selection via javascript.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#14 22-06-2011 15:20:29

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonjour les amis,
bonjour Jc, Maljuna Kris et Pierrot,

Mille merci pour vos commentaires et mille mercis pour le code de Jc... big_smile

Mais je n'arrive pas...

Alors ce que j'ai fait :

<?php
   $select_email='<select name="courriel_menu"/>';
$select_email .='<option value="00">---</option>';
$requete_courriel_menu=" 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 "
;
                     
$num_row = mysql_num_rows($requete_courriel_menu);   // LIGNE !!!! 158!!!!!!!!!!!!!
  if ($num_row){
 
     while($row = mysql_fetch_array($requete_courriel_menu)){

                $nom_email = $row['fld_nom_email'];

                $id_email = $row['fld_email_id'];

                if ($email_option_select==$id_email){$select_email .="<option value=\"$id_email\" selected=\"selected\">$nom_email</option>";}

                else {$select_email .="<option value=\"$id_email\">$nom_email</option>"; }

           }
      }

      $select_email .='</select>';

      echo $select_email;
      ?>

et voici le message d'erreur :

Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\inetpub\wwwroot\applications_web\apps_code_promotion\verification\edit.php on line 158

et dans mon menu déroulant : il y une seule option : ---

alors puisque je suis un clown, je vais changer mes envies :

Au lieu de faire un seul menu déroulant, puisque ça ne marchera jamais, je vais faire une "input type text" (avec readonly ou disabled="disabled") et un menu déroulant...
dans mon "input" je vais mettre l'enregistrement qui se trouve dans "table_db"

avec la requête suivante :

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

et dans le menu déroulant je vais afficher toutes les options qui sont dans la table "table_db_email"


avec la requête suivant :

select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email
 

Si on veut changer la valeur de input, il faut sélectionner la nouvelle valeur dans le menu déroulant... On va faire la mise à jour de bd...


Est-ce que je peux fermer cette discusion très comique en disant RESOULU ?:D

Bonne journée de la part de votre clown:D:lol:


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#15 22-06-2011 19:19:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonsoir,

Que dire PHPdos si ce n'est que je suis déçu. Tu n'as même pas pris 5min pour essayer de comprendre la logique de mon code... mais bon...
1) Pour remplir un select il ne faut pas filtrer ta requête donc ta requete avec un "WHERE ... " tu peux oublier.
2) Le filtre tu l'appliques au niveau du select.
3) Une fois le select rempli, tu navigues dedans, tu changes ta sélection etc... en manipulant le DOM via Javascript et tu évites ainsi de solliciter tes serveurs (PHP+MySQL) pour rien.

Mais le principal c'est que tu t'y retrouves.

Et puis à défaut d'un merci je me contenterai d'une bonne journée wink

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#16 22-06-2011 21:34:23

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonsoir JC,

Puisque tu es un Maitre, je t'écoute...
Et je te dis aussi merci pour tes mots...

En plus, la solution que j'ai trouvée (1 input et un menu déroulant) n'est pas très belle et c'est compliqué parce que la valeur récupérée par post d'une input, c'est un nom (fld_nom_email)  mais c'est n'est pas son id (fld_email_id)

Par contre, la valeur de mon menu, c'est l'id (fld_email_id). Autrement dit, les utilisateurs voient le nom de personne dans l'input (comme le PHP) et dans le menu déroulant (mais le PHP trouve son id dans le menu). Donc il faut que je change la valeur d'input avec son id...


Je voulus comprendre ton code, mais ma connaissance n'est pas suffisante...


D'ailleurs, je ne sais pas si tu as pu compris bien mon histoire : Dans mon menu déroulant, je voulais chercher les options dans une table et le select dans une autre table (mon bd a un modèle de données relationnelles que j'ai apprises sur le Net, grâce à vous).

Comme plusieurs fois j'ai écrit et comme tu dis "Pour remplir un select il ne faut pas filtrer ta requête donc ta requête avec un “WHERE ... ” tu peux oublier. » , mon menu marche avec le code suivant :

<select name="courriel_menu" id="courriel_menu"  class="valid"  onchange="submit()">
        <?php
     
            echo "<option selected=\"selected\" value=''>choisissez votre nom</option>";
           

      $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 afficher la selectionne
                  echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'  - '.$affiche_contenu_courriel_menu['fld_adresse_email'].'</option>';
                 
                 
             
       

            }
        ?>
      </select>

mais je n'arrive pas sélectionné l'option qui est dans ma 2e table.

Tu dis "Une fois le select rempli, tu navigues dedans, tu changes ta sélection etc... en manipulant le DOM via Javascript et tu évites ainsi de solliciter tes serveurs (PHP+MySQL) pour rien."
Mais je ne sais pas comment je peux faire cette histoire : naviguer et manipuler le DOM et JavaScript...

Bonne soirée et merci encore


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#17 22-06-2011 21:53:07

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonsoir,
je ne comprend pas comment on peut buter sur un problème aussi simple roll
à vouloir trop bien faire, ton code en devient "fouilli".
d'ailleurs, tu es tellement précis que je n'ai rien compris big_smile
de plus, je te ferais remarquer que nous somme en 2011 et qu'il existe aujourd'hui des outils bien plus performant.
le 1er conseil que je te donnerai, c'est de tous remettre à plat, penser plus simplement.
a++

Hors ligne

#18 22-06-2011 21:56:45

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Pierrot a écrit :

Bonsoir,
en 2011 et qu'il existe aujourd'hui des outils bien plus performant.

a++

Bonsoir Pierrot,

quels outils ?


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#19 22-06-2011 22:28:06

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

hé bien, php et un cerveau bien équilibré wink
a++

Hors ligne

#20 23-06-2011 05:35:22

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonjour,

C'est fou le temps que l'on peut gagner si on commence par dire "j'ai pas compris ton code" quand c'est le cas (plutôt que de passer 3 jours à mettre des rustines partout et à penser et faire je ne sais quoi de bizarre).
Pourquoi ? parce qu'ici ca s'appele PHP débutant et qu'on est la pour ça. C'est tout bête hein?
Alors je vais t'expliquer.. Mais pour cette semaine maintenant c'est un peu tard pour moi, j'ai du taf (beaucoup de dev à faire) donc j'y reviendrai dessus ce week end.

Bonne semaine.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#21 23-06-2011 05:51:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Pierrot a écrit :

le 1er conseil que je te donnerai, c'est de tout remettre à plat, penser plus simplement.

Autrement dit : KISS


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#22 26-06-2011 21:26:20

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Jc a écrit :

Je ne ferai pas de commentaires..


$a_msg='<select name="xx" tabindex="xx" class="xx" />';
//........
 

Et j'ai fait encore un effort, ca fait plus d'un an que je n'utilise que PDO... penses-y bientôt PHP 6 (déjà dispo chez OVH).

Bonjour Jo et Maljuna Kris et Pierrot...

Même si vous vous moquez de moi, j'ai fait beaucoup de progrès : il y a quelques jours, je ne connaissais rien sur modelés de données relationnelles...
Malgré les propos sarcastique, je continue...
Voici ce que j'ai fait :

<?php
    $a_msg='<select name="email_menu" id="email_menu" onchange="submit()"/>';
    $a_msg .='<option value="00">---</option>';
    $req_courriel_menu=" SELECT tbl.id_resultat,tbl.fld_email_id,email.fld_nom_email,email.id_email
                     FROM $table_db tbl
                     
                     INNER JOIN $table_db_email email
                     ON tbl.fld_email_id = email.id_email
     
                                 WHERE tbl.id_resultat=$id "
; // ma requête avec les tables tbl et email
    $rep_email_menu =  mysql_query($req_courriel_menu, $cnx) or die( mysql_error() ) ;
  $num_row = mysql_num_rows($rep_email_menu);   //////!!!!!!!!!!!! ligne 32
    if ($num_row){
          while($row = mysql_fetch_array($rep_email_menu))
      {
              $nom_email = $row[2];
              $id_email = $row[1];
              if ($emailss==$id_email){$a_msg .="<option value=\"$id_email\" selected=\"selected\">$nom_email</option>";}
              else {$a_msg .="<option value=\"$id_email\">$nom_email</option>"; }
           }
    }
    $a_msg .='</select>';
    echo $a_msg;
?>

Jc, Ton code marche et très bien fait avec 2 variables ($nom_email et  $id_email ) que je n'ai pas pu imaginer de les faire mais prochaines fois...


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

<select name="email_menu" id="email_menu" onchange="submit()"/><option value="00">---</option><option value="tomo">TOTO MONO</option></select>


Alors, je me suis dit qu'il y a quelques choses que je n'arrive pas vous expliquer...:/


Je vais le faire avec d'autres exemples :

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

<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

<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...

<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'].'"';
       
       
       
////////***************************************** sélectionner 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";} //afficher option existant en selectionnant!!!!!!!!!!!!!!!!
          }
       
/////--------------------------------
            //if($primes==$show_contenu_email_menu['fld_nom_email']){echo " selected";} //afficher option existant en selectionnant!!!!!!!!!!!!!!!!
                  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 :


<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><option value="dida" selected>DIDI DADA - di_da@test.com</option></select>

big_smile
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) ?


en fait, je vaudrais obtenir le même code source que le suivant :

<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" >KIKI TOTO - kiki.toto@test.com</option><option value="dida" >DIDI DADA - di_da@test.com</option></select>


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#23 26-06-2011 22:04:48

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

>> j'ai fait beaucoup de progrès
çà, c'est pas à toi de le décider wink


d'abord, j'me moque pas de toi wink
ensuite, je ne vois aucun progrès wink
je ne vois qu'un fouillis de vieux code wink

a++

Hors ligne

#24 29-06-2011 21:45:12

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Bonsoir,

Parfois on (je) se demande ce que serait devenu notre ami Pierrot sans émoticones dans les forums en ligne wink


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#25 29-06-2011 21:58:33

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Irresolvable] Warning: mysql_query() expects parameter 1 .....

Franchement, Jc, je le préfère vociférant des émoticones qui clignent de l'œil.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums