Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2008, 19h54   #1
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Par défaut Menu déroulant dans tableau

Je débute en php et je bute... Voilà, j'ai un premier fichier avec un menu déroulant issu de Mysql, je choisis dans ma liste et je récupère les données dans un second fichier. Jusqu'ici pas de pb. Dans le second fichier, je récupère les données dans un tableau. Voici le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<form method="post" name="anim" action="">
<?php
require ('conf.php');
//Fichier de réception du formulaire listecole.php
$postecole = $_POST['ecole'];
 
echo ("<b>Ecole</> : $postecole<br/><br>");
 
$query = mysql_query("SELECT Nom, Prénom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
 
//Déclare fonction
function menuanim() {
  $rqani = mysql_query("SELECT anim FROM jos_anim ORDER BY ID");
  echo ('<select name="anim">');
  if ($produit == "") {
    echo ('<option value="' . '">' . '< Choisir >' . '</option>');
  }
  else {
    echo ('<option value="' . '">' . '</option>');
  }
  while ($ligne1 = mysql_fetch_object($rqani)) {
 
    echo ('<option>' . $ligne1->anim . '</option>');
  }
  echo ('</select>');
 
}
 
//tableau des données récoltées
echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
				<td><b>Nom</b></td>
				<td><b>Prénom</b></td>
                                <td><b>Animation 1</b></td>
                                </tr>";
 
	while ($row=mysql_fetch_array($query))
 
{
 
echo "<tr>
<td>$row[Nom]</td>
<td>$row[Prénom]</td>
<td>$anim</td>
<tr>";}
echo "</table>";
 
?>
</form>
Mon tableau me donne bien les Noms et les Prénoms mais je voudrais intégrer dans chaque ligne, à la 3ème colonne, un menu déroulant généré par ma fonction. Ma fonction fonctionne, si j'écris
Code :
1
2
$menuanim='menuanim';
$menuanim();
J'obtiens bien mon menu déroulant mais impossible de trouver comment le placer dans le tableau!!
Chaque ligne de mon tableau final devrait comporter le Nom, le Prénom et un menu déroulant (que j'ai appelé $anim dans la table) pour envoyer les choix de chacun dans un nouveau formulaire. Je ne sais pas si je suis très clair...
Votre aide m'aidera à progresser.
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 09h36   #2
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Si j'ai bien compris voici ce que tu as fait
Citation:
while ($row=mysql_fetch_array($query)){

echo "<tr>
<td>$row[Nom]</td>
<td>$row[Prénom]</td>
<td>$anim</td>
<tr>";
}
echo "</table>";
Voici ce que tu dois faire
Code :
1
2
3
4
5
6
7
8
9
10
11
while ($row=mysql_fetch_array($query)){
 
echo "<tr>
<td>$row[Nom]</td>
<td>$row[Prénom]</td>
<td>";
menuanim();
echo "</td>
<tr>";
}
echo "</table>";
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 09h48   #3
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Bonjour,

je n'ai que survolé votre code mais déjà quelques remarques :
- votre fonction menuanim lance la requête et n'affiche qu'un seul résultat. Comme c'est une fonction, à moins que vous n'ayez défini des variables locales, vos variables sont spécifiques à la fonction (autrement dit les valeurs sont indépendantes des autres valeurs ailleurs dans le programme)
Prévoyez une boucle à la place de la fonction :

Code :
1
2
3
4
5
6
7
8
$rqani = mysql_query("SELECT anim, ID FROM jos_anim ORDER BY ID");
echo "<select name=\"id_anim\">
  <option value=\"\">< Choisir ></option>
";
while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  //c'est bien de passer par les objets, mais avec un ou 2 résultats, simplifiez-vous le code
  echo ("<option value=\"$id_anim\">$anim</option>\r\n";
}
echo ('</select>');
Ensuite, mais ce n'est qu'un conseil, évitez les accents dans le nom des champs ou des tables mysql (même si ça marche...), et évitez de mélanger les minuscules et les majuscules.
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 09h56   #4
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Rebonjour,
Je vois la réponse de Riete, qui me montre que nous sommes plusieurs à ne pas bien saisir ce que vous souhaitez obtenir.

Je comprends votre tableau, avec le nom, prénom, et choix sélect.

Ma question : est-ce que le choix sélect est EXACTEMENT le même pour toutes les cases ? Si oui, il ne faut pas lancer la requête autant de fois que vous avez de cases, mais une seule fois, et ensuite vous copiez...

Si vous pouvez donner plus de détails, merci
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 10h10   #5
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Tout d'abord merci pour vos réponses, je vais essayer d'être plus clair :
Je voudrais que s'affiche un tableau dans lequel chaque ligne aurait :

Nom reçu par _Post Prénom reçu par _Post le menu déroulant, le même à chaque ligne, pour pouvoir faire un choix pour chaque Nom.

J'ai modifié selon 'riete' mais mon menu s'affiche au dessus du tableau.

Je viens de supprimer la fonction et la remplacer par une boucle selon 'papa6' mais faut que je regarde mieux, j'obtiens "Parse error: syntax error, unexpected ';' in E:\xampp\htdocs\Essais PHP\Joomla ecole\Document2.php on line 17".

Pour les accents, le pire c'est que je le sais et je vais modifier le tout dans mes bases ainsi que les majuscules minuscules. Le tout en majuscule m'évitera les accents!
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 10h58   #6
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Par défaut rajout identifiant individu

En effet, mon code mélangeait les echos avec des parenthèses et des guillemets, alors que seuls les guillemets ou apostrophes qui remplissent ce rôle sont utiles...

J'en profite pour rajouter dans le choix select un identifiant de l'individu afin que l'on sache qui a été modifié.

Code d'extraction des anims, à n'appliquer qu'une seule fois pour toutes
Code :
$rqani = mysql_query("SELECT anim, ID FROM jos_anim ORDER BY ID");
Recherche de l'identifiant de l'individu également
Code :
$query = mysql_query("SELECT Nom, Prénom, ID_bonhomme FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("Erreur sur la requ&ecirc;te xxx : " . mysql_error());
Puis dans chaque case du tableau
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
echo "<select name=\"id_anim[$row[ID_bonhomme]]\">
  <option value=\"\">< Choisir ></option>
";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo "<option value=\"$id_anim\">$anim</option>\r\n";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo "<option value=\"$cle\">$val</option>\r\n";
  }
}
echo '</select>';
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 16h45   #7
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Par défaut des menus, pas de contenu

Bien, je sens que ça avance, enfin plus vous que moi quoique j'en ai beaucoup appris aujourd'hui. Bien, je joins mon nouveau script qui me donne bien dans chaque case un menu déroulant mais pas de contenu.... mes requêtes ne sont pas déclarées au bon endroit ? des accolades qui manquent ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<form method="post" name="anim" action="">
<?php
require ('conf.php');
//Fichier de réception du formulaire listecole.php
$postecole = $_POST['ecole'];
echo ("<b>Ecole</> : $postecole<br/><br>");
 
$query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
$rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY ID");
 
//tableau des données récoltées
 
echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
				<td><b>Nom</b></td>
				<td><b>Prénom</b></td>
                <td><b>Animation 1</b></td>
                </tr>";
 
 
while ($row=mysql_fetch_array($query))
 
{
echo "<tr>";
echo "<td>";
echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo "<option value=\"$id_anim\">$anim</option>\r\n";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo "<option value=\"$cle\">$val</option>\r\n";
  }
}
echo "'</select>';</td>";
 
echo "<td>";
echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo "<option value=\"$id_anim\">$anim</option>\r\n";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo "<option value=\"$cle\">$val</option>\r\n";
  }
}
 
echo "'</select>';</td>";
 
echo "<td>";
echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo "<option value=\"$id_anim\">$anim</option>\r\n";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo "<option value=\"$cle\">$val</option>\r\n";
  }
}
 echo "'</select>';</td>
<tr>";
}
echo "</table>";
 
?>
</form>
Heureusement que j'ai 1 mois et demi pour préparer tout ça.
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 16h58   #8
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Je ne vois pas d'erreur à priori, je ne peux pas exécuter le code car je n'ai pas le DB.
Enfin pour t'aider ce que je peux dire c'est qu'il te faut faire un echo de ta variable $tab_maliste avant de créer ton menu select. On moins tu es sur qu'il y a quelque chose à mettre dans ton menu
Prenons ton 3eme <td>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
echo "<td>";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo $id_anim"-"$anim."<br>";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo $cle."-".$val<br>";
  }
}
 echo "</td>";
Ah, oui. Il me semble aussi voir une erreur de syntax.
Ce code me semble faux
Code :
1
2
echo "'</select>';</td>
<tr>";
Je verrais plutôt:
Code :
1
2
echo "</select></td>
<tr>";
A+
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 17h39   #9
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
si je modifie avec
Code :
echo $id_anim"-"$anim."<br>";
, jobtiens ce message d'erreur :
syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 19h05   #10
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Citation:
Envoyé par Iratec Voir le message
si je modifie avec
Code :
echo $id_anim"-"$anim."<br>";
, jobtiens ce message d'erreur :
syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
Bonjour,

Il manque le caractère de concaténation '.' :
Code :
echo $id_anim."-".$anim."<br>";
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 08h32   #11
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Ooooops autant pour moi je plaide compable.
Un fois ceci modifié, ça devrait fonctionner. Tiens moi au jus.
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2008, 10h10   #12
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
J'ai modifié selon les conseils de 'riete' et j'obtiens le code suivant.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<form method="post" name="id_anim" action="">
<?php
require ('conf.php');
//Fichier de réception du formulaire listecole.php
$postecole = $_POST['ecole'];
echo ("<b>Ecole</> : $postecole<br/><br>");
 
$query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
$rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY ID");
 
//tableau des données récoltées
 
echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
				<td><b>Nom</b></td>
				<td><b>Prénom</b></td>
                <td><b>Animation 1</b></td>
                </tr>";
 
while ($row=mysql_fetch_array($query))
 
{
echo "<tr>";
echo "<td><b>$row[Nom]</b></td>";
 
echo "<td><b>$row[Prénom]</b></td>";
 
echo "<td>";
echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo $id_anim."-".$anim."<br>";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo $cle."-".$val."<br>";
  }
}
 
echo "'</select>'</td><tr>";
}
echo "</table>";
?>
</form>
Quand je lance mon formulaire listecole.php, je choisis l'école, mon script se lance , je reçois les Noms, Prénoms dans les 2 premières colonnes. Dans la troisième, progrès, la liste déoulante s'affiche bien sur chaque ligne mais elle est vide.
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2008, 10h27   #13
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Es tu certain que ton tableau $tab_maliste contient quelque chose ou que ta requête retourne quelque chose ?
fait unau milieu de ta boucle pour vérifier, sans afficher "echo "<select name=\"id_anim[$row[id_nom]]...".
Ceci mettra peut être en évidence un autre problème que tu ne soupçonne pas.

Si tu n'aboutis pas de cette façon, essaye d'extraire le bout de code qui pose problème dans un autre script, plus lisible et décortique le avec des echo bien placés.

S'est un conseil de vieux renard
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2008, 18h29   #14
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Bien, j'ai testé ce bout de code seul
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
require ('conf.php');
$rqani=mysql_query("SELECT id_anim, anim FROM jos_anim")OR die("impossible");
 
if( ! isset($tab_maliste)) {
 
  while (list($id_anim, $anim) = mysql_fetch_row($rqani)) {
    $tab_maliste[$id_anim] = $anim;
    echo $id_anim."-".$anim."<br>";
     }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo $cle."-".$val."<br>";
    print_r($tab_maliste);  }
}
?>
J'obtiens l'affichage de la colonne "id_anim" mais pas le contenu de la colonne "anim". De plus cet affichage est généré par
Code :
echo $id_anim."-".$anim."<br>";
qui se trouve après "while". A partir de "else", ça semble ne pas fonctionner
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2008, 12h19   #15
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Bonjour à vous,
et excusez-moi pour ces quelques jours sans réponse, mais j'étais empêché...

Iratec, tu peux essayer les conseils de riete pour débogguer, c'est-à-dire isoler des parties de code au fur et à mesure, pour localiser les erreurs.

Un autre conseil est de vérifier le résultat de tes requêtes avec phpmyadmin (par ex.).

Ainsi, tu peux écrire temporairement :
Code :
1
2
3
$TxtReq = "SELECT id_anim, anim FROM jos_anim";
echo "<br />Ma requete : $TxtReq";  // sans prêter attention aux problèmes d'headers éventuels
$rqani=mysql_query($TxtReq)OR die("Requ&egrave;te $TxtReq impossible : " . mysql_error());
Puis tu fais un copié-collé sous phpmyadmin, qui te permet de constater si ton champ amin a du contenu ou s'il est vide...

Sors aussi le print_r de ta boucle foreach :
Code :
1
2
3
4
5
6
} else {
  print_r($tab_maliste);
  foreach($tab_maliste as $cle => $val) {
    echo $cle."-".$val."<br>";
  }
}
Tiens-nous au courant de ton avancement,
bye
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2008, 14h16   #16
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Primo, j'avais du effacer le contenu du champ anim, je l'ai remis et maintenant le print_r m'affiche tout le contenu. Donc j'ai du contenu. C'est un premier pas. Il ne me reste plus qu'à comprendre pourquoi il refuse de me l'afficher dans la liste déroulante. Je vais regarder du côté du select name et de la boucle. Je vous tiens au courant.
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2008, 18h48   #17
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Bloqué d'un côté, on cherche de l'autre... Avec ce code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<form method="post" name="id_anim" action="">
 
<?php
require ('conf.php');
//Fichier de réception du formulaire listecole.php
$postecole = $_POST['ecole'];
echo ("<b>Ecole</> : $postecole<br/><br>");
 
//J'en profite pour rajouter dans le choix select un identifiant de l'individu afin que l'on sache qui a été modifié. Code d'extraction des anims, à n'appliquer qu'une seule fois pour toutes
 
 
$query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
$rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY id_anim") OR die("impossible");
 
//tableau des données récoltées
 
echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
				<td><b>Nom</b></td>
				<td><b>Prénom</b></td>
                <td><b>Animation 1</b></td>
                </tr>";
 
 
while ($row=mysql_fetch_array($query))
 
{
echo "<tr>";
echo "<td><b>$row[Nom]</b></td>";
 
echo "<td><b>$row[Prénom]</b></td>";
 
echo "<td>";
 
 
echo('<select name="anim">');
     if($produit==""){
     echo('<option value="'.'">'.'< Choisir >'.'</option>');
     }
     else
     {
     echo('<option value="'.'">'.'</option>');}
     while ($ligne1=mysql_fetch_object($rqani)){
         echo('<option>'.$ligne1->anim.'</option>'); }
         //echo('</select>');
 
echo "'</select>'</td><tr>";
}
echo "</table>";
?>
</form>
J'obtiens Les noms en première colonne, les prénoms dans la seconde et le menu déroulant complet dans la troisième colonne, première ligne. pour les autres lignes, dans la troisième colonne je n'ai que le menu déroulant avec "choisir" mais pas de choix. On se rapproche... Pour les propositions de riete et de papa6, je planche encore mais qui sait en croisant les deux approches...
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2008, 11h08   #18
Invité régulier
 
Inscription : août 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 42
Points : 9
Points : 9
Par défaut Affichage résolu

Quand on débute, on manque parfois de rigueur....
Je suis retourné voir le code qu'avait proposé papa6 et j'ai remarqué que j'avais modifié.... ID_bonhomme en id_nom qui existe dans ma base jos_ecole. J'ai remis id_bonhomme et les menus s'affichent dans chaque ligne. Voici le code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<form method="post" name="id_anim" action="">
 
<?php
require ('conf.php');
//Fichier de réception du formulaire listecole.php
$postecole = $_POST['ecole'];
echo ("<b>Ecole</> : $postecole<br/><br>");
 
//J'en profite pour rajouter dans le choix select un identifiant de l'individu afin que l'on sache qui a été modifié. Code d'extraction des anims, à n'appliquer qu'une seule fois pour toutes
 
 
$query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
$rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY id_anim") OR die("impossible");
 
//tableau des données récoltées
 
echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
				<td><b>Nom</b></td>
				<td><b>Prénom</b></td>
                <td><b>Animation 1</b></td>
                </tr>";
 
//Puis dans chaque case du tableau
while ($row=mysql_fetch_array($query))
 
{
echo "<tr>";
echo "<td><b>$row[Nom]</b></td>";
 
echo "<td><b>$row[Prénom]</b></td>";
 
echo "<td>";
 
 
echo "<select name=\"id_anim[$row[ID_bonhomme]]\">
  <option value=\"\">< Choisir ></option>
";
if( ! isset($tab_maliste)) {
  // Premier passage
  while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
    $tab_maliste[$id_anim] = $anim;
    echo "<option value=\"$id_anim\">$anim</option>\r\n";
  }
} else {
  foreach($tab_maliste as $cle => $val) {
    echo "<option value=\"$cle\">$val</option>\r\n";
  }
}
echo "'</select>'</td><tr>";
}
echo "</table>";
?>
</form>
Reste un petit truc, à côté de chacun de mes menus, j'ai le signe ' qui s'affiche. Bon et bien maintenant il ne me reste plus qu'à continuer....
Merci à riete et papa6
Iratec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2008, 18h12   #19
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Bonjour,
et tant mieux si ça avance...

Pour l'apostrophe (en fait, il devait y en avoir 2, un autre caché au niveau du dernier choix de la liste déroulante) :
Code :
echo "</select></td><tr>";
Au passage, tu peux utiliser les allers à la ligne inclus dans les guillemets :
Code :
1
2
3
echo "</select></td>
  <tr>
";
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h38.


 
 
 
 
Partenaires

Hébergement Web