Liste déroulante vierge

Résolu/Fermé
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 - 8 mars 2013 à 12:19
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 - 12 mars 2013 à 11:20
Bonjour,
J'ai un soucis avec la liste déroulante.
J'ai ma page mais je n'arrive pas a voir ma base de donnée

<FORM>
<select name="Choisir un employé">


<?php
try
{
$sql = '127.0.0.1';
$utilisateur = 'TpUn';
$motDePasse = 'TpUn';
$connexion = new PDO($dsn, $utilisateur, $modDePasse);
echo $dsn;
}
catch(Exeption $e)
{
echo $dsn;
echo "Connexion à la base TpUp(MySQL) impossible :".$e->getMessage();
}
?>

<?php
$sql = "SELECT NOMEMP FROM employe ";
$result = mysql_query($sql);

while ($data = mysql_fetch_array($result))
{
echo 'Liste des employés : ';
}
?>


<option>
<?php echo $result['NOMEMP'];?>
</option>



<?php
mysql_close();
?>
</FORM>
<br/>
<input type="submit" value="Liste des réparations" />
<br/>
<input type="submit" value="Retour" />

</HTML>


donc je voudrais savoir se qui manque pour afficher mes employés

Merci


12 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 mars 2013 à 11:39
try
{
$sql = '127.0.0.1';
$utilisateur = 'TpUn';
$motDePasse = 'TpUn';
$connexion = new PDO($dsn, $utilisateur, $modDePasse);


d'où sort ce $dsn ??

ensuite dans ta boucle while tu fait un fetch dans $data et tu utilises ensuite $result et tu as mis les <option en dehors de la boucle while

et tu mélanges du PDO et du mysql "classique"
while ($data = mysql_fetch_array($result))
{
echo 'Liste des employés : ';
}
?>


<option>
<?php echo $result['NOMEMP'];?>
</option>


<?php

$serveur = '127.0.0.1'; //la tu avait mis $sql que tu utilises plus bas pour autre chose, il faut être cohérent et mettre des noms de variables parlantes
$utilisateur = 'TpUn';
$motDePasse = 'TpUn';
$data_base="le_nom_de_ta_base";
$connexion = mysql_connect($serveur, $utilisateur, $modDePasse) or die("Pb connexion serveur: ".mysql_error());
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());


$sql = "SELECT NOMEMP FROM employe ";
$result = mysql_query($sql) or die("Pb avec la requette: ".mysql_error());
?>
<form name="form1" method="post" action="nom_du_script_php_appele.php">
Liste des employés : <br />
<select name="Choix_employe"> <!-- ne pas mettre d'espace ni d'accents dans un name -->
<option value="">-- Chosir un employé --</option>
<?php
while ($data = mysql_fetch_array($result))
{
	//il faut mettre tes lignes d'option dans la boucle while !
	//et une value= a <option>
	echo '<option value="'.$data['NOMEMP'].'">';
	echo $data['NOMEMP'];
	echo '</option>';
}

mysql_close();
?>
</select>
<br/>
<input type="submit" name="liste_reparations" value="Liste des réparations" />
<br/>
<input type="submit" name="retour" value="Retour" />
<!-- les boutons doivent être dans le formuliare donc entre les balises <form...> et </form>  -->
</form>
</html> 
0
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 8
10 mars 2013 à 20:27
voilà :

<!DOCTYPE html>
<HTML>
<FORM>


<?php
try
{
$serveur = '127.0.0.1';
$utilisateur = 'TpUn';
$motDePasse = 'TpUn';
$data_base="TpUn";
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());



$sql = "SELECT NOMEMP FROM employe ";
$result = mysql_query($sql) or die("Pb avec la requette: ".mysql_error());
?>

<option value="">-- Chosir un employé --</option>
<?php
while ($data = mysql_fetch_array($result))
{
echo '<option>';
echo $result['NOMEMP'];
}
echo '</SELECT>';
?>

<?php
mysql_close();
?>

</select>
<br/>
<input type="submit" name="liste_reparations" value="Liste des réparations" />
<br/>
<input type="submit" name="retour" value="Retour" />
</form>
</html>


mais j'ai une erreur
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 10/03/2013 à 21:36
j'ai une erreur, quelle erreur ? on ne peut pas deviner .

Tu as fait un peu n'importe quoi lis un peu les commentaires

<!DOCTYPE html>  
<html>  
<?php  
/*  
ça c'est en trop !  
try  
{  
*/  
$serveur = '127.0.0.1';  
$utilisateur = 'TpUn';  
$motDePasse = 'TpUn';  
$data_base="TpUn";  
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());  
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());  



$sql = "SELECT NOMEMP FROM employe ";  
$result = mysql_query($sql) or die("Pb avec la requette: ".mysql_error());  
?>  
<!-- il te manquait déja cette ligne -->  
<form name="form1" method="post" action="" >  
 <!-- il te manquait déja cette ligne aussi -->  
<select name="choix_employe">  
<option value="">-- Choisir un employé --</option>  
<?php  
/* 
 
while ($data = mysql_fetch_array($result))  
{  

la tu as fait n'imorte quoi regardes un peu ce que j'ai écrit !  
echo '<option>';  
echo $result['NOMEMP'];  
}  
echo '</SELECT>';  
*/  
Petite explication sur le principe:
lorsqu'on fais ça: $result = mysql_query($sql)
les résultats de la requette sont mis dans une zone mémoire, 
une ligne par enregistrement trouvé, chaque ligne contient les champs demandés, dans ton cas 'NOMEMP'
$result contient la "référence" à cette zone mémoire

avec la boucle while ($data = mysql_fetch_array($result)) tu viens "lire" cette zone mémoire ligne par ligne
le contenu de chaque ligne est mis dans $data qui est un array de tous les champs de la ligne d'enregistrement trouvé

donc dans ton cas: $data{NOMEMP'] contient la valeur

pour afficher il faut donc utiliser $data et pas $result
/*

*/
while ($data = mysql_fetch_array($result))  
{  
 //il faut mettre tes lignes d'option dans la boucle while !  
 //et la balise de fin </select> en dehors  
 echo '<option value="'.$data['NOMEMP'].'">';  
 echo $data['NOMEMP'];  
 echo '</option>';  
}  
?>  

<?php  
mysql_close();  
?>  

</select>  
<br/>  
<input type="submit" name="liste_reparations" value="Liste des réparations" />  
<br/>  
<input type="submit" name="retour" value="Retour" />  
</form>  
</html>
0
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 8
10 mars 2013 à 22:10
Merci de ta patience sa fonctionne et je commence a comprendre le système.
La je dois faire une autre page je vais essayé de la faire tout seul.
Je te tiens au courant de l'avancement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 mars 2013 à 08:40
pour mieux comprendre ce serait bien si tu veux apprendre les bases du php c'est de suivre les tutos du site
www.siteduzero.com
0
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 8
11 mars 2013 à 09:49
Ok merci de l'adresse.
La il me manque juste ma requête SQL.
Je souhaite en fonction du nom sélectionner, aller dans ma table d'intervention et affiché la liste de réparation de cet employé
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 11/03/2013 à 10:45
le nom de la page (xxxx.php) qui va faire cela doit être mis dans

<form name="form1" method="post" action="xxxx.php" >

du formulaire qui contient ta liste déroulante choix employé
0
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 8
11 mars 2013 à 12:28
D'accord Donc j'ai actuellement sa :
!DOCTYPE html>
<html>
<body>

<?php
$serveur = '127.0.0.1';
$utilisateur = 'root';
$motDePasse = '';
$data_base="TpUn";
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());

$result = mysql_query("SELECT NUMEMP,NOREPARATION,NBHEURES FROM intervenir,employe WHERE intervenir.NOMEMP='".$_POST["NOMEMP"]."'");
?>

<form name="resultat" method="post" action="TpUn.php" >


<table>
<tr>
<td>NUMEMP</td>
<td>NOREPARATION</td>
<td>NBHEURES</td>
</tr>

<?php

while ($data = mysql_fetch_array($result))
{ echo '<option value="'.$data['NOMEMP'].'">';
echo $data['NOMEMP'];
echo '<table>';
echo '<tr>';
echo '<td><NUMEMP</td>';
echo '<td><NBHEURES</td>';
echo '<td><NBHEURES</td>';
}
?>


<?php
mysql_close();
?>

</body>
</html>


JE recherche les erreurs car il en a pas mal ...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 mars 2013 à 13:27
Le code rectifié de ta page de choix employé:
<!DOCTYPE html>  
<html>  
<?php  

$serveur = '127.0.0.1';  
$utilisateur = 'TpUn';  
$motDePasse = 'TpUn';  
$data_base="TpUn";  
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());  
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());  
$sql = "SELECT NOMEMP FROM employe ";  
$result = mysql_query($sql) or die("Pb avec la requette: ".mysql_error());  
?>  
<!-- c'est ici qu'il fallait mettre action="TpUn.php" -->  
<form name="form1" method="post" action="TpUn.php" >  
  
<select name="choix_employe">  
<option value="">-- Choisir un employé --</option>  
<?php  

while ($data = mysql_fetch_array($result))  
{  
 echo '<option value="'.$data['NOMEMP'].'">';  
 echo $data['NOMEMP'];  
 echo '</option>';  
}  
  
mysql_close();  
?>  

</select>  
<br/>  
<input type="submit" name="liste_reparations" value="Liste des réparations" />  
<br/>  
<input type="submit" name="retour" value="Retour" />  
</form>  
</html>



le code rectifié de TpUn.php:
<!DOCTYPE html>
<html>
<body>

<?php
$serveur = '127.0.0.1';
$utilisateur = 'root';
$motDePasse = 'TpUn'; //tiens d'un coup tu n'avait plus de mot de passe
$data_base="TpUn";
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());
//ci dessous mysql_real... c'est pour sécuriser, et le or die pour afficher les erreurs éventuelles si pb avec la requette
//et c'est le choix dans la liste qui est posté par la page précédente, dont le name="choix_employe"
//donc on récupère le nom de l'mployé chosi dans la lsite par $_POST['choix_employe']
$result = mysql_query("SELECT NUMEMP,NOREPARATION,NBHEURES FROM intervenir,employe WHERE intervenir.NOMEMP='".mysql_real_escape_string($_POST['choix_employe']."'")) or die ("pb avec la requette: ".mysql_error());
?>
<!-- ce n'est pas dans ce fichier qu'il faut mettre la ligne <form name="resultat" method="post" action="TpUn.php" > -->

Résultats pour l'employé: <?php echo $_POST['choix_employe']; ?>
<table>
<tr>
<!-- avec th au lieu de td ça met en gras et centré -->
<th>NUMEMP</th>
<th>NOREPARATION</th>
<th>NBHEURES</th>
</tr>

<?php
/*
NON ça c'est pas bon
while ($data = mysql_fetch_array($result))
{ echo '<option value="'.$data['NOMEMP'].'">';//que vient faire cette ligne option ?
echo $data['NOMEMP'];
echo '<table>';
echo '<tr>';
echo '<td><NUMEMP</td>';
echo '<td><NBHEURES</td>';
echo '<td><NBHEURES</td>';
}

*/

while ($data = mysql_fetch_array($result))
{ 
	//on fait une nouvelle ligne <tr></tr> dans la table pour chaque ligne d'enregistrement trouvée
	echo '<tr>';
	//dans chacune des colonnes on affiche la valeur correspondante
	echo '<td>'.$data['NUMEMP'].'</td>';
	echo '<td>'.$data['NOREPARATION'].'</td>';
	echo '<td>'.$data['NBHEURES'].'</td>';
	echo '</tr>';
}


mysql_close();
?>
</table> <!-- et la fin de table ? -->
</body>
</html>
0
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 8
11 mars 2013 à 18:54
voici le php pour ma page qui affiche le résultat :
<html>
<body>

<?php
$serveur = '127.0.0.1';
$utilisateur = 'root';
$motDePasse = '';
$data_base="TpUn";
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());

if (isset($_POST['choix_employe']))
{
$result = mysql_query("SELECT NUMEMP,NOREPARATION,NBHEURES FROM intervenir,employe WHERE intervenir.NOMEMP='".mysql_real_escape_string($_POST['choix_employe']."'")) or die ("pb avec la requette: ".mysql_error());
}


?>

<?php echo $_POST['choix_employe']; ?>
<table>
<tr>
<th>NUMEMP</th>
<th>NOREPARATION</th>
<th>NBHEURES</th>
</tr>

<?php
while ($data = mysql_fetch_array($result))
{
{

echo '<tr>';
echo '<td>'.$data['NUMEMP'].'</td>';
echo '<td>'.$data['NOREPARATION'].'</td>';
echo '<td>'.$data['NBHEURES'].'</td>';
echo '</tr>';
}


mysql_close();
?>
</table>
</body>
</html>



J'ai mi root car l'utilisateur n'est pas valide donc je passe en root pour évité les problèmes de compatibilité avec mysql
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 mars 2013 à 19:19
qqs petites erreurs:
<html>
<body>

<?php
$serveur = '127.0.0.1';
$utilisateur = 'root';
$motDePasse = '';
$data_base="TpUn";
$connexion = mysql_connect($serveur, $utilisateur, $motDePasse) or die("Pb connexion serveur: ".mysql_error());
$db=mysql_select_db($data_base) or die("Pb selection base: ".mysql_error());

if (isset($_POST['choix_employe']))
{
	//puisque tu fait un test si choix_employe posté, mets tout l'affichage dans les  {} de cette condition
	$result = mysql_query("SELECT NUMEMP,NOREPARATION,NBHEURES FROM intervenir,employe WHERE intervenir.NOMEMP='".mysql_real_escape_string($_POST['choix_employe']."'")) or die ("pb avec la requette: ".mysql_error());
	echo $_POST['choix_employe']; 
	?>

	<table>
	<tr>
	<th>NUMEMP</th>
	<th>NOREPARATION</th>
	<th>NBHEURES</th>
	</tr>

	<?php
	while ($data = mysql_fetch_array($result))
	// { erreur d'inattention tu as mis 2 fois l'accolade {
	{

		echo '<tr>';
		echo '<td>'.$data['NUMEMP'].'</td>';
		echo '<td>'.$data['NOREPARATION'].'</td>';
		echo '<td>'.$data['NBHEURES'].'</td>';
		echo '</tr>';
	}


	mysql_close();
	?>
	</table>
<?php
} //fin du if isset($_POST['choix_employe']))
?>
</body>
</html>
0
Beta15 Messages postés 270 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 7 avril 2013 8
12 mars 2013 à 11:20
Salut je viens de tout refaire voici le programme :

Page de connec
<?php
try
{
$dns = 'mysql:host=localhost;dbname=TpUn';
$utilisateur = 'TpUn';
$motDePasse = 'TpUn';
$connexion = new PDO( $dns, $utilisateur, $motDePasse );
}
catch ( Exception $e )
{
echo "Connection à MySQL impossible : ", $e->getMessage();
die();
}
?>

Page choix :
<html>
<?php
session_start();
require_once('Conne.php');
?>

<form action="recherche.php" method="post">
<label for="employe">Choisir l'employé :</label>
<select name="employe" id="employe">
<?php
$select = $connexion->query("SELECT NOMEMP,NUMEMP FROM employe");
$select->setFetchMode(PDO::FETCH_OBJ);

while($ligne = $select->fetch())
{
?>

<option value="<?php echo $ligne->NUMEMP;?>">
<?php echo $ligne->NUMEMP;?>" -
<?php echo HTMLEntities($ligne->NOMEMP);?></option>

<?php
}
$select->closeCursor();
?>

</select></br></br>
<p><input type="submit" value="Cliquez ici" /><br/>
<input type="button" name="retour" value="Retour" onClick="history.back();"></p>

</html>

Page tableau :
<HTML>

<?php
session_start();
require_once('Conne.php');
?>

<?php
$req->$connexion->query("Select * FROM intervenir, reparation Where intervenir.NUMEMP=".$_POST["employe"]." AND intervenir.NOREPARATION=reparation.NOREPARATION");

$req->setFetchMode(PDO::FETCH_OBJ);
?>
<table>
<thead>
<tr>
<th>Numero Employe</th>
<th>Numero reparatio</th>
<th>Numero du bateau</th>
<th>Date de reparation</th>
</tr>
</thead>
<tbody>

<?php
$NbReparation=0;
while($ligne =$req->fetch())
{
?>
<tr><?php echo $ligne->NUMEMP;?></td>
<tr><?php echo $ligne->NOREPARATION;?></td>
<tr><?php echo HTMLEntities($ligne->NUMBAT);?></td>
<tr><?php echo $ligne->DATEREPARATION;?></td>
<?php $NbReparation = $NbReparation + 1; ?>
</tr>
<?php
}
$req->closeCursor();
?>
</tbody>
</table><br/>


j'ai quelques erreurs sur le tableau
0