8795 sujets

Développement web côté serveur, CMS

Bonjour à tous voilà mon souci je souhaite faire un menu déroulant dans lequel se trouverait les résultats d'une requête mysql. J'ai donc recupéré une syntaxe sur internet je n'ai aucune erreur le seul probléme c'est que le menu déroulant s'affiche mais quand je clique dessus il est vide je ne vois pas la solution merci de m'aider voici mon code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Supprimer un membre</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />

</head>
<body>
<?php 
session_start ();
include("base.php");

?>

<div class="div_principale">
<div class="banniere">
<img src="images/banner3.gif" alt="Banni&eacute;re du site" />

</div>
<div class="rech_rapide">
</div>
<div class="connexion">
<?php 
include("connexion.php");

	

?>
</div>

<div >
<?php
include("menu.php");
?>

</div>
<div class="contenu">
<h2 style="color:rgb(204,102,0)">Choisissez l'utilisateur a supprimer <br/> <br/> <br/></h2>
<?php

  echo '<select size=1 name="cat">'."\n"; 
  echo '<option value="-1">Choisir un membre<option>'."\n"; 
   
  // Récupération des informations triées par ordre alphabétique 
  
  $ReqLog = mysql_query("SELECT * FROM membres"); 
   
  while ($resultat = mysql_fetch_row($ReqLog)) { 
    echo "<option value='{$resultat['pseudo']}'>{$resultat['pseudo']}"; 
    echo '</option>'."\n"; 
  } 
   
  echo '</select>'."\n"; 
  
?> 
<form action="suppr.php" method="post">
<input type="submit" value="supprimer" style="color:rgb(204,102,0);" />
</form>








</div>
</div>

</body>
</html>



Merci de m'aider
Récupérer du code pour l'utiliser c'est bien, mais le comprendre c'est mieux...

Est ce que tu as procédé étape par étape pour voir ce qui se passait (en utilisant echo, var_dump(), print_r() et die(), par exemple), est ce que tu t'es renseigné sur les fonctions PHP utilisé (au hasard mysql_fetch_row()). Allez tiens, voilà la doc de ta fonction : http://fr.php.net/manual/fr/function.mysql-fetch-row.php

Je veux pas être méchant mais ça fait plusieurs sujets que tu crées alors que le problème n'est pas insurmontable. Si tu veux vraiment progresser essaie de comprendre le code que tu reprends, et va lire la doc quand tu ne connais pas une fonction.

Au passage ton session_start() est après du html.

Et tu devrais coder en mettant error_reporting(E_ALL) en haut de toutes tes pages PHP, ça t'aiderais à voir les bugs et à les corriger.
Modifié par Surfoo (13 Oct 2008 - 11:45)
Merci pour cette info j'ai mis à jour mon code et cela fonctionne il susbsiste 2 souci le premiers entre choisir un membre et le nom du premier membre j'ai une case vide je ne comprend pas pourquoi de plus lorsque je selectionne mon membre je l'envoi vers une page suppr.php dans cette page je fais juste un echo de la variable et rien ne s'affiche je ne comprend pas pourquoi ? voici le code de la nouvelle page ainsi que celui de la page suppr.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Supprimer un membre</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />

</head>
<body>
<?php 

include("base.php");

?>

<div class="div_principale">
<div class="banniere">
<img src="images/banner3.gif" alt="Banni&eacute;re du site" />

</div>
<div class="rech_rapide">
</div>
<div class="connexion">
<?php 
include("connexion.php");

	

?>
</div>

<div >
<?php
include("menu.php");
?>

</div>
<div class="contenu">
<h2 style="color:rgb(204,102,0)">Choisissez l'utilisateur a supprimer <br/> <br/> <br/></h2>
<?php

  echo '<select size=1 name="cat">'."\n"; 
  echo '<option value="-1">Choisir un membre<option>'; 
   
  // Récupération des informations triées par ordre alphabétique 
  
  $ReqLog = mysql_query("SELECT * FROM membres"); 
   
  while ($resultat = mysql_fetch_row($ReqLog)) { 
    echo "<option value='{$resultat[1]}'>{$resultat[1]}"; 
    echo '</option>'//."\n"
	; 
  } 
   
  echo '</select>'//."\n"
  ; 
  
?> 
<form action="suppr.php" method="post">
<input type="submit" value="supprimer" style="color:rgb(204,102,0);" />
</form>








</div>
</div>

</body>
</html>



voici suppr.php

<?php
echo"{$resultat[1]}";



?>
Hello

<div class="contenu">

<h2 style="color:rgb(204,102,0)">Choisissez l'utilisateur a supprimer <br/> <br/> <br/></h2>
<?php
  echo '<form action="suppr.php" method="post">';
  echo '<select size=1 name="cat">'; 
  echo '<option value="-1">Choisir un membre<option>'; 

  // Récupération des informations triées par ordre alphabétique 
  $ReqLog = mysql_query("SELECT * FROM membres"); 
  while ($resultat = mysql_fetch_row($ReqLog)) { 
    echo '<option value='.$resultat[0].'>'.$resultat[1].'</option>'; 
  } 

  echo '</select><br /><input type="submit" value="supprimer" style="color:rgb(204,102,0);" /></form>'; 
?> 

</div>



<?php

echo $_POST['cat'];

?>

Il est préférable de travailler avec les "ID" plutôt qu'avec les mots.

Voilà je pense que sa devrai aller bien mieux.
Modifié par TEALC82 (13 Oct 2008 - 18:53)
Au niveau du $_POST['cat'] tout fonctionne merci bien cependant j'ai toujours ce souci d'espace vide au niveau du menu et je ne sais pas comment l'enlever
Modérateur
Salut,

c'est normal que tu ne récupères pas la valeur de ta variable. Ta balise <form ...> n'est pas au bon endroit Smiley cligne .

Normalement, cela devrait être ceci :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Supprimer un membre</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />

</head>
<body>
<?php 

include("base.php");

?>

<div class="div_principale">
<div class="banniere">
<img src="images/banner3.gif" alt="Banniére du site" />

</div>
<div class="rech_rapide">
</div>
<div class="connexion">
<?php 
include("connexion.php");

	

?>
</div>

<div >
<?php
include("menu.php");
?>

</div>
<div class="contenu">
[b]<form action="suppr.php" method="post">[/b]
<h2 style="color:rgb(204,102,0)">Choisissez l'utilisateur a supprimer <br/> <br/> <br/></h2>
<?php

  echo '<select size=1 name="cat">'."\n"; 
  echo '<option value="-1">Choisir un membre<option>'; 
   
  // Récupération des informations triées par ordre alphabétique 
  
  $ReqLog = mysql_query("SELECT * FROM membres"); 
   
  while ($resultat = mysql_fetch_row($ReqLog)) { 
    echo "<option value='{$resultat[1]}'>{$resultat[1]}"; 
    echo '</option>'//."\n"
	; 
  } 
   
  echo '</select>'//."\n"
  ; 
  
?> 
<input type="submit" value="supprimer" style="color:rgb(204,102,0);" />
</form>
</div>
</div>

</body>
</html>


;)

En lisant ton code de plus près, pense à séparer la forme du contenu. en suivant cette logique de conception, tu ne dois pas trouver de balise ou d'attribut sur les styles. Smiley cligne ex :

<h2 style="color:rgb(204,102,0)">Choisissez l'utilisateur a supprimer <br/> <br/> <br/></h2>

Smiley biggol

Apparamment, je vois que tu souhaites récupérer la liste des membres par ordre alphabétique. Je crois que ta requête n'est pas assez détaillé.

Je pense que ce serait mieux de faire ceci :

$sql="SELECT * FROM membres ORDER BY nom_membre ASC"; //nom_membre est le nom du champ [cligne]



++
Modifié par Nolem (13 Oct 2008 - 20:04)
Merci pour toutes ces indiquation au niveau de la récupération des membres tout fonctionne impec maintenant seul souci j'ai toujours mon espace vide entre la case choisir un membre et le nom du premier membre. Et je ne sais pas comment faire
Modérateur
Ce n'est pas cette ligne là qui est mis en cause :

echo '<option value="-1">Choisir un membre<option>';


à remplacer peut être par :

echo '<option value="0">Choisir un membre<option>';


ou juste au dessus sur l'attribut size="0"

++
l'attribut size indique le nombre de chant qui apparaitront dans le menu sans que je le déroule il est a 1 par défaut donc ca ne change rien de plus j'ai essayé de changer la value de choisir un membre et rien n'y fait non plus ... Je sais plus quoi faire Smiley confus
N'y a t'il tout simplement pas un enregistrement vide dans la table des membres ? et donc que le while listerai.