Affichage de données à partir de mysql

Fermé
coolvis - Modifié par jordane45 le 27/11/2014 à 09:31
jordane45 Messages postés 38286 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 14 novembre 2024 - 27 nov. 2014 à 09:39
Bonjour à tous, moi c'est clovis étudiant en informatique. j'ai un formulaire php composé essentiellement de liste deroulante (faites par des select name) qui va servir à remplir une autre table de ma base. j'ai écrit le script mais je ne comprend pas pourquoi mon formulaire ne se rempli pas. voici mes script.

formulaire:

<body>
<?php
 include("connexion.php");
 $req1=mysql_query("select * from utilisateur");
 $req3=mysql_query("select * from stock");
 $reg=mysql_query("select * from materiel");
?>

 <form method="post" action="equipements_insert.php">
 <fieldset>
 <legend>Affectation d'équipements</legend>
 <di>
 <table>
  <tr>
   <td>Numéro de serie de l'équipement</td>
   <td>
     <select name="mat_seri">
       <?php
        while ($mat_seri=mysql_fetch_array($reg))
        {
         echo '<option value="'.$mat_seri["mat_seri"].'">'.$mat_seri["mat_seri"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td>Nom de l'équipement</td>
   <td>
     <select name="mat_nom">
       <?php
        while ($mat_nom=mysql_fetch_array($reg))
        {
         echo '<option value="'.$mat_nom["mat_nom"].'">'.$mat_nom["mat_nom"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td>Marque de l'équipement</td>
   <td>
     <select name="mat_marq">
       <?php
        while ($mat_marq=mysql_fetch_array($reg))
        {
         echo '<option value="'.$mat_marq["mat_marq"].'">'.$mat_marq["mat_marq"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td>Modèle de l'équipement</td>
   <td>
     <select name="mat_mod">
       <?php
        while ($mat_mod=mysql_fetch_array($reg))
        {
         echo '<option value="'.$mat_mod["mat_mod"].'">'.$mat_mod["mat_mod"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td>Type de l'équipement</td>
   <td>
     <select name="mat_typ">
       <?php
        while ($mat_typ=mysql_fetch_array($reg))
        {
         echo '<option value="'.$mat_typ["mat_typ"].'">'.$mat_typ["mat_typ"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td>Ut utilisateur recipiendaire</td>
   <td>
     <select name="util_ut">
       <?php
        while ($util_ut=mysql_fetch_array($req1))
        {
         echo '<option value="'.$util_ut["util_ut"].'">'.$util_ut["util_ut"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td>code stock</td>
   <td>
     <select name="stock_cod">
       <?php
        while ($stock_cod=mysql_fetch_array($req3))
        {
         echo '<option value="'.$stock_cod["stock_cod"].'">'.$stock_cod["stock_cod"].'</option>';
        }
       ?> 
     </select>     
   </td>
  </tr>
  <tr>
   <td colspan="2"><input type="submit" value="Valider" /> <input type="reset" value="Annuler" /></td>
  </tr>
  <tr>
   <td colspan="2" align="center">
   <?php
    if(isset($_GET["mess"]))
      {
     echo '<h5 class="texte">'.$_GET["mess"].'</h5>';
      }
     ?>
     <?php
    if(isset($_GET["mes"]))
      {
     echo '<h5 class="texte">'.$_GET["mes"].'</h5>';
      }
     ?>
   </td>  
    </tr>
 </table>
 </div>
 </fieldset>
</form>
</body>

le problème est que certaines données comme la liste des numéros de serie s'affiche mais celle des nom de l'équipement non! je sais vraiment pas quoi faire. j'ai même changé de navigateur(google) pour utiliser firefox mais rien.
merci de m'aider à corriger mon script

1 réponse

jordane45 Messages postés 38286 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 14 novembre 2024 4 697
27 nov. 2014 à 09:39
Bonjour,

1 - J'ai édité ton message pour y ajouter les balises de code. (coloration syntaxique... première icone en haut à droite dans la fenêtre de rédaction des messages).

2 - Pour ce qui est de ton souci...
Tu fais plusieurs boucles sur la même ressource...
  while ($mat_seri=mysql_fetch_array($reg)) 

  while ($mat_marq=mysql_fetch_array($reg))

   while ($mat_typ=mysql_fetch_array($reg))

...etc...

Il faut donc que tu ajoutes entre chaque utilisation l'instruction :
mysql_data_seek($req, 0);



3 - Pour que ton code soit plus clair et plus facile à utiliser.. et pour éviter le problème que tu viens de nous remonter.. le mieux est de stocker le résultat de ta requête dans un tableau (un Array) et après.. de manipuler directement ce tableau. Ainsi .. plus de souci de pointeur de ressource.....
0