Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: marygil le le 21-09-2009 a 07:37:58

Titre: Affichage de mes données
Posté par: marygil le le 21-09-2009 a 07:37:58

Bonjour,

Je récupére et j'affiche sur ma page mes données en PHP issue de ma BDD.

Voici le code, mais je voudrais également afficher le select de ma liste déroulante de mon formulaire qui correspond à la valeur.
Mon exemple affiche le nom et le prenom des membres "executant" mais il faudrait aussi que ça affiche l'instrument à qu'il joue.

C'est un peu compliqué mais si vous pouvez m'aider à m'expliquer, c'est très gentil à vous.
Merci beaucoup


Code:

<?php
$recup = mysql_query(" SELECT *
                  FROM cruet_membre
                  WHERE membre='Executant'
                  ORDER BY nom, prenom");
while ($data = mysql_fetch_array($recup))
{
   echo $data['nom'] . " " . $data['prenom'] . " ";
   echo "<br>";
}
?>


Titre: Re:Affichage de mes données
Posté par: KB le le 21-09-2009 a 11:51:48

salut,
je sais pas si j'ai bien compris ton probleme mais voila:
ton select ressemble a ça:
<select name="instrument">
<option value="trompette">Trompette</option>
etc..
</select>

pour le php
<?php
echo $_POST['instrument'];
?>

Titre: Re:Affichage de mes données
Posté par: marygil le le 21-09-2009 a 12:05:06

Bonjour et merci pour votre réponse.
Ben en fait ça affiche dans un tableau le nom et prenom des membres executant via le code PHP de mon premier post.
Jusqu'à là c'est bon
Mai je voudrais ajouter également le nom de l'instrument que chaque membre joue.
En fait voici la fonction javascrip
et mon formulaire qui correspond
Merci de votre aide


Code:

function modif()
{
document.getElementById('listepupitre').innerHTML="<select name=user_pupitre><option></option><option value=Saxophone>Saxophone</option><option value=Porte_drapeau>Porte_drapeau</option><option value=Chef_de_musique>Chef_de_musique</option><option value=Cor>Cor</option><option value=Trompette_de_cavalerie>Trompette_de_cavalerie</option><option value=Clairon>Clairon</option><option value=Basse>Basse</option><option value=Percussion>Percussion</option><option value=Tambour>Tambour</option></select>";
}


<form id="formulaire" action="" method="post" onkeypress="refuserToucheEntree(event);">
<tr>
<td>Pupitre :</td>
            <td><div id=listepupitre>
            <select name="user_pupitre" disabled="">
            <option class="first" value="<?php echo @$rows->pupitre ?>"><?php echo @$rows->pupitre ?></option>
            </select>
            <input type=button value=modif onclick="modif1()"></div></td>
</tr>
</form>


Titre: Re:Affichage de mes données
Posté par: KB le le 21-09-2009 a 15:15:08

si je suis bien le raisonnement, tu veux que lorsque l'on sélectionne quelqu'un dans le premier <select>, un deuxième <select> s'affiche avec la liste des instruments?
si c'est"juste" ça (les deux select ne sont pas directement liés), il suffit de mettre cette liste dans ton code et de lui attribué un display:none. Puis, au clic, modifier le display=block.

Si au contraire, les 2 select sont liés, il faut utiliser l'ajax.

a noter: une erreur est présente dans ton code:
ta fonction s'appelle modif() et tu l'appel onclick="modif1()"


Titre: Re:Affichage de mes données
Posté par: marygil le le 21-09-2009 a 15:29:59

Merci de ton aide et pour mon erreur.
je pense que je me suis mal expliquer c'est pas simple certaines explications.

en fait je pense que c'est un problème de requete et non de select.

Voilà j'ai un formulaire ou je rentre toutes les infos des membres.
Jusque là pas de soucis.
Mais sur ma page qui affiche tous les membres c'est à dire non prénom et membres, je voudrais que ça affiche aussi l'instrument qu'il joue en sachant qu'il a juste 1 instrument par membre, ci dessous la requete qui affiche les données des membres que je souhaite mais il faudrait aussi que ça affiche l'instrument qu'il joue.

Merci de votre aide


Code:

<table id="musicien" style="display:inline" >
   <tr>
      <td>
      <center>
      <div style='background: #E0FFFF; padding: 3px;'><b><?php echo $executant; ?>&nbsp;&nbsp;<u>Ex&eacute;cutant</u></b>
      </div>
      </center>
      <br>
<?php
$recup = mysql_query("   SELECT *
                  FROM cruet_membre
                  WHERE membre='Executant'
                  ORDER BY nom, prenom");
while ($data = mysql_fetch_array($recup))
{
   echo $data['nom'] . " " . $data['prenom'] . " ";
   echo "<br>";
}



Titre: Re:Affichage de mes données
Posté par: KB le le 21-09-2009 a 19:58:32

bah je vois pas ou est le probleme alors! si tu as réussi a afficher le nom et prenom, tu fais pareil pour l'instrument. (par exemple $data['instrument'] ) !!!

Titre: Re:Affichage de mes données
Posté par: marygil le le 21-09-2009 a 22:05:53

Bonjour et grand merci.

Je suis nul complétement nul ....................
Pas vraiment réfléchi c'était pourtant simple.
Ca m' apprendra à faire un peu plus de réflexion.

Merci encore

Titre: Re:Affichage de mes données
Posté par: marygil le le 22-09-2009 a 06:47:21

Bonjour,

Suite à ma requéte ci-dessous que vous m'avez bien aidé, je voudrais pouvoir supprimer les doublons.
Pour certains nom il y a deux fois le même instrument et je voudrais qu'il s'affiche juste une fois.
J'ai essayé GROUP BY pupitre ça me supprime également les noms qui correspondent.
Merci encore

Code:

<?php
$recup = mysql_query("   SELECT *
                  FROM cruet_membre
                  WHERE membre='Executant'
                  ORDER BY nom, prenom");
while ($data = mysql_fetch_array($recup))
{
   echo "<ol> " . $data['pupitre'] . "</ol>" ;
   echo "<li> " . $data['nom'] . " " . $data['prenom'] . "</li> " ;
}
?>

Titre: Re:Affichage de mes données
Posté par: KB le le 22-09-2009 a 10:13:42

en ce moment tu as:
Citation:
- trompette
----nom1
- trompette
-----nom2
-saxophone
-----nom3
etc...
et toi ty veux:
-trompette
----nom1
----nom2
-saxophone
----nom3

C'est bien ça?
tu dois donc d'abord lister les instrument comme tu as fait, puis refaire une requete pour les nom associé au sein de ta premiere boucle.
exemple:
Citation:
$recup = mysql_query(" SELECT *
FROM cruet_membre
WHERE membre='Executant'
ORDER BY nom, prenom"
GROUP BY pupitre);
while ($data = mysql_fetch_array($recup))
{
echo "<ol> " . $data['pupitre'] . "</ol>" ;
$recup2 = mysql_query(" SELECT *
FROM cruet_membre
WHERE membre='Executant' and pupitre='" . $data['pupitre'] . "'
ORDER BY nom, prenom"
GROUP BY nom);
while ($data2 = mysql_fetch_array($recup2)){
echo "<li> " . $data2['nom'] . " " . $data2['prenom'] . "</li> " ;
}

y'a peut etre des petites erreurs mais l'idée est là.

Titre: Re:Affichage de mes données
Posté par: marygil le le 23-09-2009 a 05:15:25

Bonjour et merci pour votre réponse.

Je n'arrive pas à trouver l'erreur pourtant votre requéte me paraissait bien.
Si vous pouvez m'aider encore s'il vous plait.


Code:

<?php
$recup = mysql_query(" SELECT *
      FROM cruet_membre
      WHERE membre='Executant'
      ORDER BY nom, prenom
                  GROUP BY pupitre");
while ($data = mysql_fetch_array($recup))
{
   echo "<ol> " . $data['pupitre'] . "</ol>" ;
}
$recup2 = mysql_query("   SELECT *
      FROM cruet_membre
      WHERE membre='Executant' and pupitre='" . $data['pupitre'] . "'
      ORDER BY nom, prenom
      GROUP BY nom");
while ($data2 = mysql_fetch_array($recup2))
{
   echo "<li> " . $data2['nom'] . " " . $data2['prenom'] . "</li> " ;
}
?>


L'erreur que ça donne c'est:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\cliquedecruet\pages\musicien.php on line 109

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\cliquedecruet\pages\musicien.php on line 118

Sinon moi j'avais mis un DISTINCT PUPITRE à select


Code:

<?php
$recup = mysql_query("   SELECT DISTINCT pupitre
                  FROM cruet_membre
                  WHERE membre='Executant'
                  ORDER BY pupitre, nom, prenom");
while ($data = mysql_fetch_array($recup))
{
   echo "<ol> " . $data['pupitre'] . "</ol>" ;
   echo "<li> " . $data['nom'] . " " . $data['prenom'] . "</li> " ;
}
?>

ça m'affiche bien 1 seule fois les instruments là c'était bon
mais ça n'affichait pas les nom des membres executants

Merci

Titre: Re:Affichage de mes données
Posté par: Lilian le le 23-09-2009 a 08:18:13

Bonjour,

Pour débugguer tu peux utiliser PhpMyAdmin qui te dira où se situe exactement l'erreur.

Titre: Re:Affichage de mes données
Posté par: marygil le le 24-09-2009 a 07:19:36

Bonjour,

J'ai vraiment essayé de comprendre mais en vain, je n'y arrive pas.
pouvez-vous essayer de m'aider encore.
En vous remerciant d'avance
Merci

Titre: Re:Affichage de mes données
Posté par: marygil le le 24-09-2009 a 10:15:07

Bonjour,

L'ordre des requète n'était pas bon j'ai mis GROUP BY avant ORDER BYE
et là ça m'affiche que les instruments et pas les noms.
Merci de votre aide

Titre: Re:Affichage de mes données
Posté par: KB le le 24-09-2009 a 10:26:47

et quel erreur cela affiche?

Titre: Re:Affichage de mes données
Posté par: marygil le le 24-09-2009 a 11:13:51

aucune erreur ça affiche 1 seul fois les instruments donc c'est impec et ça affiche pas les nom et prenom

Merci

Titre: Re:Affichage de mes données
Posté par: KB le le 24-09-2009 a 11:28:52

afin de voir ou ça en est, tu me redonne le code stp. On doit pas etre loin du but !

Titre: Re:Affichage de mes données
Posté par: marygil le le 24-09-2009 a 11:39:02


Code:

<?php
$recup = mysql_query(" SELECT *
      FROM cruet_membre
      WHERE membre='Executant'
                  GROUP BY pupitre
      ORDER BY nom, prenom");
while ($data = mysql_fetch_array($recup))
{
   echo "<ol> " . $data['pupitre'] . "</ol>" ;
}
$recup2 = mysql_query("   SELECT *
      FROM cruet_membre
      WHERE membre='Executant' and pupitre='" . $data['pupitre'] . "'
                  GROUP BY nom, prenom
      ORDER BY nom, prenom");
while ($data2 = mysql_fetch_array($recup2))
{
   echo "<li> " . $data2['nom'] . " " . $data2['prenom'] . "</li> " ;
}
?>

Titre: Re:Affichage de mes données
Posté par: KB le le 24-09-2009 a 12:47:03

Citation:
<?php
$recup = mysql_query(" SELECT *
FROM cruet_membre
WHERE membre='Executant'
GROUP BY pupitre
ORDER BY nom, prenom");
while ($data = mysql_fetch_array($recup))
{
echo "<ol> " . $data['pupitre'] . "</ol>" ;

$recup2 = mysql_query(" SELECT *
FROM cruet_membre
WHERE membre='Executant' and pupitre='" . $data['pupitre'] . "'
GROUP BY nom, prenom
ORDER BY nom, prenom");
while ($data2 = mysql_fetch_array($recup2))
{
echo "<li> " . $data2['nom'] . " " . $data2['prenom'] . "</li> " ;
}
} La deuxieme requete doit etre dans la premiere boucle !!
?>


Titre: Re:Affichage de mes données
Posté par: marygil le le 24-09-2009 a 15:49:49

Bonjour

maintenant ça avance à petit pas................

en fait ça m'affiche ceci

trompette
nom1
clarinette
nom2

alors qu'il y a nom3, nom4 nom5 etc

ça devrait être ceci

trompette
nom1
nom2
nom3
nom4
clarinette
nom5
etc

Merci de ta patience

Titre: Re:Affichage de mes données
Posté par: marygil le le 24-09-2009 a 17:49:28

Rebonjour

Ca y est c'est gagné impeccable il fallait simplement supprimer GROUP BY nom et prenom dans la deuxième requéte.

Merci beaucoup

Titre: Re:Affichage de mes données
Posté par: marygil le le 30-09-2009 a 20:34:36

Bonjour et merci de votre aide à tous.
Mon problème est résolu
Merci


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