[Résolu] Liste déroulante php/sql n'affichant pas toutes les données.

Liste déroulante php/sql n'affichant pas toutes les données. [Résolu] - PHP - Programmation

Marsh Posté le 25-02-2010 à 12:27:12    

Bonjour,  
 
Savez-vous pourquoi dans ce script PHP affichant un menu déroulant d'une liste de logiciel, je n'arrive pas à avoir la deuxieme colonne "versions_logiciels". La colonne "nom_logiciels" s'affiche bien. Ma requete SQL me semble bonne.
 

Code :
  1. <?php
  2.   include('connexion.php');
  3.  $requete = "SELECT nom_logiciels, versions_logiciels FROM logiciels WHERE DA_MV = 'DA' ORDER BY nom_logiciels ASC";
  4.   $resultat = mysql_query($requete) or die("erreur dans la requ&eacute;te $requete" );
  5.  while ($tableau = mysql_fetch_object($resultat))
  6.   $nom_logiciels[] = $tableau->nom_logiciels;
  7.  echo "<select id='OBJ_int1' name='nom_logiciels[]'>";
  8.   echo "<option> </option>";
  9.   for ($i=0;$i<count($nom_logiciels);$i++)
  10.  echo "<option value='$nom_logiciels[$i]'>$nom_logiciels[$i]</option>";
  11.  echo "</select>";
  12.  mysql_close();
  13. ?>


 
 
D'avance merci.
 
Nicolas.


Message édité par mac_gyver80 le 25-02-2010 à 14:40:55
Reply

Marsh Posté le 25-02-2010 à 12:27:12   

Reply

Marsh Posté le 25-02-2010 à 12:41:26    

Ben, tu la récupères jamais dans ton code, ta deuxième colonne.
C'est quoi que tu veux faire exactement? Afficher à la fois le nom et la version dans tes options? Si oui, alors:
- soit tu récupères aussi la version ($versions_logiciels[] = $tableau->versions_logiciels; ) et tu la concatènes quand tu écrit tes options (echo "<option value='$nom_logiciels[$i].$versions_logiciels[$i]'>$nom_logiciels[$i].$versions_logiciels[$i]</option>"; ) (faudra penser à mettre un espace entre les deux mais je connais pas PHP),
- soit tu te démerdes pour que ta requete ne renvoie qu'une colonne avec les deux infos déjà concaténées. En SQL Oracle ca donne: SELECT nom_logiciels || ' ' || versions_logiciels as nom_logiciels FROM logiciels WHERE DA_MV = 'DA' ORDER BY nom_logiciels ASC


Message édité par lasnoufle le 25-02-2010 à 12:41:46

---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 25-02-2010 à 13:39:27    

Bref, une façon de faire :
 

Code :
  1. <?php
  2.   include('connexion.php');
  3.  $requete = "SELECT nom_logiciels, versions_logiciels FROM logiciels WHERE DA_MV = 'DA' ORDER BY nom_logiciels ASC";
  4.   $resultat = mysql_query($requete) or die("erreur dans la requ&eacute;te $requete" );
  5.  while ($tableau = mysql_fetch_object($resultat))
  6.   $nom_logiciels[] = $tableau->nom_logiciels;
  7.   $versions_logiciels[] = $tableau->versions_logiciels;
  8.  echo "<select id='OBJ_int1' name='nom_logiciels[]'>";
  9.   echo "<option> </option>";
  10.  foreach ($nom_logiciels as $key => $value){
  11.   echo "<option value='$value'>".$nom_logiciels[$key]." ".$versions_logiciels[$key]."</option>";
  12.   }
  13.  echo "</select>";
  14.  mysql_close();
  15. ?>


Reply

Marsh Posté le 25-02-2010 à 14:40:30    

Merci pour vos conseils!
 
Voici au final le code que j'ai, et qui fonctionne :
 

Code :
  1. <?php
  2.   include('connexion.php');
  3.  $requete = "select nom_logiciels, versions_logiciels from logiciels where DA_MV = 'DA' ORDER BY nom_logiciels ASC";
  4.   $resultat = mysql_query($requete) or die("erreur dans la requ&eacute;te $requete" );
  5.  echo "<select id='OBJ_int1' name='nom_logiciels[]'>";
  6.   echo "<option> </option>";
  7.   while ($tableau = mysql_fetch_object($resultat))
  8.   {
  9.  echo "<option value='".$tableau->nom_logiciels." - ".$tableau->versions_logiciels."'>".$tableau->nom_logiciels." - ".$tableau->versions_logiciels."</option>\n";
  10.  }
  11.  echo "</select>";
  12.  mysql_close();
  13. ?>


 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed