begin process at 2012 05 28 13:57:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Bug dans une double liste


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Bug dans une double liste

jeudi 25 mai 2006 à 10:08:29 | Bug dans une double liste

stu76

Membre Club

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"><strong>S&eacute;lection : </strong>
    <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>&nbsp;</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! <br>'.$sqlelev.'<br>'.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;
   }

   echo "<option value=".$row['id_elv'].">".$row['nom_elev'] . " ". $row['prenom_elev']. "</option>"; //affichege des valeurs contnues
}
?>
    </select>
      </form></td>
  </tr>
 
  <tr>
    <td width="210"><span class="Style3">Cours</span></td>
    <td width="250"><span class="Style3">Total en % </span></td>
    <td><span class="Style3">D&eacute;cision</span></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! <br>'.$classe.'<br>'.mysql_error());
  
  while ($row_affichages=mysql_fetch_array($req,MYSQL_ASSOC))
     { 
   
   ?>
    <td><?php echo $row_affichages['nom_cours']; ?></td>
    <td><?php echo $row_affichages['total_pourc']; ?></td>
    <td><form name="selection" method="post" action="">
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">TV
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">BR
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">TV + BR
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">R&eacute;ussit
   </form></td>
  </tr>
  <?php
}
?>
  <tr bgcolor="#CCCCCC">
    <td colspan="2"><span class="Style5">Enregister : </span>
      <form name="form1" method="post" action="">
        <input type="submit" name="Submit" value="Ok">
    </form></td>
    <td><form name="form3" method="post" action="">
      <input type="radio" name="radiobutton" value="radiobutton">
      <span class="Style6">Ajourn&eacute;</span>
      <input type="radio" name="radiobutton" value="radiobutton">  
      <span class="Style6">Att B </span>
      <input type="radio" name="radiobutton" value="radiobutton">
      <span class="Style6">Att A</span>
      <input type="radio" name="radiobutton" value="radiobutton">
      <span class="Style6">Att C</span>
    </form></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="#333333"><a href="accueiladmin.php">retour</a></td>
  </tr>
</table>
  <?php
  }
 }
  mysql_close();
?>
  <p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($affichageclasse);

mysql_free_result($affichageeleves);
?>

Merci a tout ceux que se pancherons sur mon prob.

++ 

Stu76 

jeudi 25 mai 2006 à 10:23:37 | Re : Bug dans une double liste

stu76

Membre Club

Désolé, j'ai mis le mauvais code, voici celui que j'avais modifier depuis :

 <td colspan="2" rowspan="2"><strong>S&eacute;lection : </strong>
    <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>&nbsp;</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! <br>'.$sqlelev.'<br>'.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 contnues
}
?>
    </select>
    <input type="submit" name="Submit" value="OK">
    </form></td>
  </tr>
 
  <tr>
    <td width="210"><span class="Style3">Cours</span></td>
    <td width="250"><span class="Style3">Total en % </span></td>
    <td><span class="Style3">D&eacute;cision</span></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! <br>'.$classe.'<br>'.mysql_error());
  while ($row_affichages=mysql_fetch_array($req,MYSQL_ASSOC))
     { 
   
   ?>
    <td><?php echo $row_affichages['nom_cours']; ?></td>
    <td><?php echo $row_affichages['total_pourc']; ?></td>
    <td><form name="selection" method="post" action="">
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">TV
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">BR
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">TV + BR
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">R&eacute;ussit
   </form></td>
  </tr>
  <?php
}
?>
  <tr bgcolor="#CCCCCC">
    <td colspan="2"><span class="Style5">Enregister : </span>
      <form name="form1" method="post" action="">
        <input type="submit" name="Submit" value="Ok">
    </form></td>
    <td><form name="form3" method="post" action="">
      <input type="radio" name="radiobutton" value="radiobutton">
      <span class="Style6">Ajourn&eacute;</span>
      <input type="radio" name="radiobutton" value="radiobutton">  
      <span class="Style6">Att B </span>
      <input type="radio" name="radiobutton" value="radiobutton">
      <span class="Style6">Att A</span>
      <input type="radio" name="radiobutton" value="radiobutton">
      <span class="Style6">Att C</span>
    </form></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="#333333"><a href="accueiladmin.php">retour</a></td>
  </tr>
</table>
  <?php
  }
 }
  mysql_close();
?>
  <p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($affichageclasse);

mysql_free_result($affichageeleves);
?>

++

Stu76

jeudi 25 mai 2006 à 10:33:55 | Re : Bug dans une double liste

stu76

Membre Club

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

Pourquoi ?

 je sais pas encore.

++

jeudi 25 mai 2006 à 11:19:09 | Re : Bug dans une double liste

malalam

Administrateur CodeS-SourceS
Hello, réexplique mieux ton problème, et essaye de nous fournir un code nettoyé de tout artifice...trop compliqué à lire, là! ceci dit je viens de voir un truc étrange : if(empty($_GET['select'])) { $eleves=$_GET['select']; ?? si ton $_GET est vide, alors tu le met dans $eleves...?? Et sur cette liste eleves, il n'y a pas de soumission du formulaire, en plus.
jeudi 25 mai 2006 à 11:40:27 | Re : Bug dans une double liste

stu76

Membre Club

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 :

[ Lien ]

 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>&nbsp;</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! <br>'.$sqlelev.'<br>'.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>
    <input type="submit" name="Submit" value="OK">
    </form></
td>
  </tr>
 
  <tr>
    <td width="210"><span class="Style3">Cours</span></td>
    <td width="250"><span class="Style3">Total en % </span></td>
    <td><span class="Style3">D&eacute;cision</span></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! <br>'.$sqlselec.'<br>'.mysql_error());
  while ($row_affichages=mysql_fetch_array($req,MYSQL_ASSOC))
     { 
   
   ?>
    <td><?php echo $row_affichages['nom_cours']; ?></td>
    <td><?php echo $row_affichages['total_pourc']; ?></td>
    <td><form name="selection" method="post" action="">
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">TV
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">BR
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">TV + BR
      <input type="radio" name="Groupe de boutons radio1" value="bouton radio">R&eacute;ussit
   </form></td>
  </tr>
  <?php
}
?>

Encore, merci,

++



Cette discussion est classée dans : mysql, liste, id, classe, eleves


Répondre à ce message

Sujets en rapport avec ce message

Problème d'un script [ par stu76 ] Bonsoir,J'ai écris un petit script qui me permet d'afficher les élèves stocker dans une base de données. Mon prob est que l'affichage par classe fonct Problème de code [ par stu76 ] Bonjour tout le monde ,Voilà je planche sur un programme scolaire et j'ai un gros prob, je travaille sur un programme qui utilise trois base de donnée Pb pour inserer dans ma bd une variable d'une liste deroulante [ par neo_tsubasa ] Bonjour à tous,J'ai un petit pb, j'ai creer une liste deroulante qui va chercher ces données dans ma base de donnée  ( cela fonctionne ) . Ensuite je remplir une liste deroulante en fonction d'une autre [ par gregou9 ] J'aimerais savoir cmt remplir ma seconde liste deroulante (act) en fonction de la premiere (coffr). Voici mon code:$liste_coffret="SELECT id,nom_fr fr comment recupérer automatiquement dans les champs d'un formulaire, les donnees affichées aprés selection, dans une liste déroulante ? [ par schmoldu21 ] Bonjour, je debute en php, et j'ai un formulaire avec une liste deroulante qui est alimentée par une base de donnees mysql, dans ma liste deroulante, liste deroulante [ par kelkune ] je galere pr recuperer les resultat de mes lsite deroulante si quelqu'un peum'aider ca serait vriament genial surto u que ca urge assez voila en fait liste deroulante [ par kelkune ] je galere pr recuperer les resultat de mes lsite deroulante si quelqu'un peum'aider ca serait vriament genial surto u que ca urge assez voila en fait Liste déroulante [ par biba00 ] Salut tout le monde,j'ai utilisé une rquete pour mettre une liste des nom dans une liste déroulante , voici mon code :       La liste des modules < Les listes déroulantes [ par pympc ] Bonjour à tous et à toutes,Petit nouveau sur ce forum, j'ai décidé d'apprendre le PHP et à gérer des bases de données MySQL, histoire de ne pas trop e Récuperer les lignes dans liste de selection en php [ par marocmarocmaroc ] Bonjour, j'ai deux tables famille(id_famille,désignation) et sous famille(id_sous_famille,désignation,id_famille) tel que id_famille est la clé étrang


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales