stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
25 mai 2006 à 10:08
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
25 mai 2006 à 11:40
Bonjour,
Malalam m'a donné des infos hier sur les doubles liste, et je le remercie car ca ma été super utile. J'ai presque résolu le prob sauf que je n'ai pas de résultat retourné par ma deuxième liste. Je m'explique voici une saisie d'écran de l'application que sur laquelle je travail.
Je sélectionne une classe dans la première liste jusque la pas de prob, la liste élèves est directement généré et les résultats du premier élèves s'affiche correctement. Mon prob est quand je sélectionne un autre élèves dans la liste plus rien ne s'affiche au niveau des résultats.
je vous donne ci-dessous la partie de code qui est concernée par ce prob. J'ai déjà passer bcp d'heure sur ce prob et là je galère grave. A l'aide SVP, un petit coup de pouce serait le bien venu.
<td colspan= "2" rowspan="2"> Sélection :
<form name ="Affichage classe" method="post" action="">
<select name="listeclasse" size="1" onChange="this.form.submit();">
Boucle do while pour l'affiche des classes dans la liste déroulante
<?php
do {
?>
<option value="<?php echo $row_affichageclasse['id_cl']?>"<?php if (!(strcmp($row_affichageclasse['id_cl'], $row_affichageclasse['id_cl']))) {echo "SELECTED";} ?>><?php echo $row_affichageclasse['nom_clas']?></option>
<?php //j'affiche l'id
} while ($row_affichageclasse = mysql_fetch_assoc($affichageclasse));
$rows = mysql_num_rows($affichageclasse);
if($rows > 0) {
mysql_data_seek($affichageclasse, 0);
$row_affichageclasse = mysql_fetch_assoc($affichageclasse);
}
?>
</select>
</form>
</td>
<td></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
</tr>
<tr>
<?php
if(isset($_POST['listeclasse']) and is_numeric($_POST['listeclasse'])) // je test si $_POST contient bien quelque chose et si elle est bien numéric.
{
$sqlelev="SELECT eleves.id_elv, eleves.section, eleves.classe, eleves.nom_elev, eleves.prenom_elev, eleves.id_classe, classe.id_cl FROM eleves
inner join classe on classe.id_cl=eleves.id_classe where eleves.id_classe=".$_POST['listeclasse'];
$reqelev=mysql_query($sqlelev) or die('Erreur SQL!
'.$sqlelev.'
'.mysql_error());
$row_affichageeleves=mysql_fetch_array($reqelev,MYSQL_ASSOC);
?>
<td colspan="3">Sélectionner un élève : <form name="Affichageeleves" method="post">
<select name="select" onChange="document.getElementById('mainForm').submit();">
<?php
for ($i = mysql_num_rows($reqelev) -1; $i >= 0; $i--) { //je récupere le nombre de ligne d'un jeu de résultat Mysql de la variable $reqelev
if (!mysql_data_seek($reqelev, $i)) { //déplace le pointeur interne de résultat
echo "Ne peut pointer vers la ligne $i : " . mysql_error() . "\n"; //Message en cas d'erreur
continue;
}
if (!($row = mysql_fetch_assoc($reqelev))) { //j'affecte le resultat du tableau a la variable $row
continue;
}
<tr>
<td width="210">Cours</td>
<td width="250">Total en % </td>
<td>Décision</td>
</tr>
<tr>
<?php
if(isset($_POST['listeclasse']) and is_numeric($_POST['listeclasse']))
{
$sqlselec="SELECT classe.*, cours.*, resultats.* FROM cours, resultats inner join classe on
classe.id_cl=cours.id_classe and cours.id_c=resultats.id_cours where classe.id_cl=".$_POST['listeclasse'];
$classe=$sqlselec;
$req=mysql_query($classe) or die('Erreur SQL!
'.$classe.'
'.mysql_error());
while ($row_affichages=mysql_fetch_array($req,MYSQL_ASSOC))
{
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 25 mai 2006 à 10:23
Désolé, j'ai mis le mauvais code, voici celui que j'avais modifier depuis :
<td colspan= "2" rowspan="2"> Sélection :
<form name ="Affichage classe" method="post" action="">
<select name="listeclasse" size="1" onChange="this.form.submit();">
Boucle do while pour l'affiche des classes dans la liste déroulante
<?php
do {
?>
<option value="<?php echo $row_affichageclasse['id_cl']?>"<?php if (!(strcmp($row_affichageclasse['id_cl'], $row_affichageclasse['id_cl']))) {echo "SELECTED";} ?>><?php echo $row_affichageclasse['nom_clas']?></option>
<?php //j'affiche l'id
} while ($row_affichageclasse = mysql_fetch_assoc($affichageclasse));
$rows = mysql_num_rows($affichageclasse);
if($rows > 0) {
mysql_data_seek($affichageclasse, 0);
$row_affichageclasse = mysql_fetch_assoc($affichageclasse);
}
?>
</select>
</form>
</td>
<td></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
</tr>
<tr>
<?php
if(isset($_POST['listeclasse']) and is_numeric($_POST['listeclasse'])) // je test si $_POST contient bien quelque chose et si elle est bien numéric.
{
$sqlelev="SELECT eleves.id_elv, eleves.section, eleves.classe, eleves.nom_elev, eleves.prenom_elev, eleves.id_classe, classe.id_cl FROM eleves
inner join classe on classe.id_cl=eleves.id_classe where eleves.id_classe=".$_POST['listeclasse'];
$reqelev=mysql_query($sqlelev) or die('Erreur SQL!
'.$sqlelev.'
'.mysql_error());
$row_affichageeleves=mysql_fetch_array($reqelev,MYSQL_ASSOC);
?>
<td colspan="3">Sélectionner un élève : <form name="Affichageeleves" method="get">
<select name="select" onChange="">
<?php
for ($i = mysql_num_rows($reqelev) -1; $i >= 0; $i--) { //je récupere le nombre de ligne d'un jeu de résultat Mysql de la variable $reqelev
if (!mysql_data_seek($reqelev, $i)) { //déplace le pointeur interne de résultat
echo "Ne peut pointer vers la ligne $i : " . mysql_error() . "\n"; //Message en cas d'erreur
continue;
}
if (!($row = mysql_fetch_assoc($reqelev))) { //j'affecte le resultat du tableau a la variable $row
continue;
}
<tr>
<td width="210">Cours</td>
<td width="250">Total en % </td>
<td>Décision</td>
</tr>
<tr>
<?php
if(empty($_GET['select']))
{
$eleves=$_GET['select'];
$sqlselec="SELECT classe.*, cours.*, resultats.*, eleves.* FROM cours, resultats, eleves inner join classe on
classe.id_cl=cours.id_classe and cours.id_c=resultats.id_cours and resultats.id_eleves=eleves.id_elv where eleves.id_elv='$eleves'";
$classe=$sqlselec;
$req=mysql_query($classe) or die('Erreur SQL!
'.$classe.'
'.mysql_error());
while ($row_affichages=mysql_fetch_array($req,MYSQL_ASSOC))
{
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 25 mai 2006 à 10:33
Re,
Je vous tiens au courant des test que j'effectue en faite ma requête sql, ne recoit rien de ma deuxième liste : voici ce qu'elle me rertourne :
SELECT classe.*, cours.*, resultats.*, eleves.* FROM cours, resultats, eleves inner join classe on classe.id_cl=cours.id_classe and cours.id_c=resultats.id_cours and resultats.id_eleves=eleves.id_elv where eleves.id_elv=''
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 25 mai 2006 à 11:40
Salut,
J'ai regardé ce que tu ma dit et effectivement c'était pas clair, maintenant j'arrive a avoir les enregistrement des élèves mais de manière complètement loufoque. Bon je reconnait que mon code les égalements. Mais je suis encore dans la phase débutant du php.
En clair, voici ce qui ce passe a ce stade du code :
Je selectionne une classe et un élèves quand je clique sur OK rien ne se passe mais les donnée affiché dans l'url sont correcte voici un exemple :
Si je reselectionne la même classe, truc bizarre il m'affiche la bonne valeur dans marequête sql et les réultats afficher sont bien celui du bon élève. Voici ce qu'affiche le echo de ma requête SQL :
SELECT classe.*, cours.*, resultats.*, eleves.* FROM cours, resultats, eleves inner join classe on classe.id_cl=cours.id_classe and cours.id_c=resultats.id_cours and resultats.id_eleves=eleves.id_elv where eleves.id_elv='18'
Pourquoi, je n'ai pas ce résultat quand je click sur OK ?
Si tu pouvait me guider ce serait très cool de ta part.
Voici le code modifier, en rouge le code qui a mon sens pose des probs :
<form name="Affichage classe" method="post" action="">
<select name="listeclasse" size="1" onChange="this.form.submit();">
Boucle do while pour l'affiche des classes dans la liste déroulante
<?php
do {
?>
<option value="<?php echo $row_affichageclasse['id_cl']?>"<?php if (!(strcmp($row_affichageclasse['id_cl'], $row_affichageclasse['id_cl']))) {echo "SELECTED";} ?>><?php echo $row_affichageclasse['nom_clas']?></option>
<?php //j'affiche l'id
} while ($row_affichageclasse = mysql_fetch_assoc($affichageclasse));
$rows = mysql_num_rows($affichageclasse);
if($rows > 0) {
mysql_data_seek($affichageclasse, 0);
$row_affichageclasse = mysql_fetch_assoc($affichageclasse);
}
?>
</select>
</form>
</td>
<td></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
</tr>
<tr>
<?php
if(isset($_POST['listeclasse']) and is_numeric($_POST['listeclasse'])) // je test si $_POST contient bien quelque chose et si elle est bien numéric.
{
$sqlelev="SELECT eleves.id_elv, eleves.nom_elev, eleves.prenom_elev, eleves.id_classe, classe.id_cl FROM eleves
inner join classe on classe.id_cl=eleves.id_classe where eleves.id_classe=".$_POST['listeclasse'];
$reqelev=mysql_query($sqlelev) or die('Erreur SQL!
'.$sqlelev.'
'.mysql_error());
$row_affichageeleves=mysql_fetch_array($reqelev,MYSQL_ASSOC);
?>
<td colspan="3">Sélectionner un élève : <form name="Affichageeleves" method="get">
<select name="select" onChange="">
<?php
for ($i = mysql_num_rows($reqelev) -1; $i >= 0; $i--) { //je récupere le nombre de ligne d'un jeu de résultat Mysql de la variable $reqelev
if (!mysql_data_seek($reqelev, $i))
{ //déplace le pointeur interne de résultat
echo "Ne peut pointer vers la ligne $i : " . mysql_error() . "\n"; //Message en cas d'erreur
continue;
}
if (!($row = mysql_fetch_assoc($reqelev)))
{ //j'affecte le resultat du tableau a la variable $row
continue;
}
echo "<option value=".$row['id_elv'].">".$row['nom_elev'] . " ". $row['prenom_elev']. "</option>"; //affichege des valeurs contenue dans la variable $row
}
?>
</select>
</form></td>
</tr>
<tr>
<td width="210">Cours</td>
<td width="250">Total en % </td>
<td>Décision</td>
</tr>
<tr>
<?php
if(isset ($_GET['select']))
{
$id=$_GET['select'];
$sqlselec="SELECT classe.*, cours.*, resultats.*, eleves.* FROM cours, resultats, eleves inner join classe on
classe.id_cl=cours.id_classe and cours.id_c=resultats.id_cours and resultats.id_eleves=eleves.id_elv where eleves.id_elv='$id'";
echo $sqlselec;
$req=mysql_query($sqlselec) or die('Erreur SQL!
'.$sqlselec.'
'.mysql_error());
while ($row_affichages=mysql_fetch_array($req,MYSQL_ASSOC))
{