Problème pour récupéré donnée depuis base de donnée

Fermé
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021 - Modifié par jordane45 le 21/10/2016 à 13:17
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 21 oct. 2016 à 13:50
Bonjour, j'ai réalisé un code qui a l'objectif de récupéré les information de la base de donnée a une liste déroulante mais le soucis c'est que la liste s'affiche sans les information voici le code
<?php
$hostname = "localhost";

$username = "root";

$password = "Mm101010";

$dbname = "smartphone";

$connect = new PDO("mysql:host=".$hostname.";dbname=".$dbname, $username, $password);
$options= "";
$query = $connect -> prepare("SELECT * FROM employe");

$query -> execute (array ());

$rows = $query -> fetchAll(PDO::FETCH_ASSOC);
?>
<select name="employes">
  <option
   value="Choisi un nom">
  </option>
  <?php
   foreach ($employe ->fetchall() as $employe): 
  ?>
  <option
   value=<?php echo $employe ['Or_Affectation']; ?>>"<?php echo $employe ['nom']; ?>
   </option>
  <?php endforeach; ?>
 </select> 
    foreach ($rows as $row)
    {
        $options = $row[5];
    }
?>

pouvez me dire ou j'ai fauté?
merci

EDIT : Ajout du LANGAGE dans les balises de code (pour avoir la couleur...)

2 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié par jordane45 le 21/10/2016 à 13:49
Bonjour,

Une fois la couleur ajoutée sur ton code (voir mon EDIT) ... on constate que ta boucle ne se trouve pas dans des balises PHP ...
On voit aussi que tu as oublié des QUOTES dans tes attributs VALUE de tes OPTIONS...
Ainsi que bien d'autres erreurs...


Essaye ça :

1 - On place le code de connexion à la BDD dans un fichier à part qu'on aura juste à inclure dans les pages où en aura besoin :
<?php
// Fichier de connexion à la bdd : cnxBdd.php
$hostname = "localhost";
$username = "root";
$password = "Mm101010";
$dbname = "smartphone";

try{
  $bdd =new PDO('mysql:host=localhost; dbname=mabdd; charset=utf8', 'user', 'password');
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

?>

2 - Et dans ton fichier :
<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);

//On importe le fichier de connexion à la BDD
require_once "cnxBdd.php";

//Requete
$sql = "SELECT * FROM employe";
$datas = NULL;

try{
  $query = $bdd -> prepare($sql);
  $query -> execute($datas);
  $rows = $query->fetchAll();
} catch(PDOException $e) {
   echo ('Erreur : ' . $e->getMessage());
}

?>
<select name="employes">
  <option value="">Choisi un nom </option>
  <?php
  if(!empty($rows)){
   //Si la liste n'est pas vide on boucle dessus
   foreach ($rows as $employe){
     echo "<option value='".$employe['Or_Affectation']."'>".$employe['nom']."'</option>";
   }
   }
 ?>
 </select> 
 

</code>



Cordialement, 
Jordane                                                                 
1
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
21 oct. 2016 à 13:50
Au passage ... j'ai activé la gestion des erreurs PDO et placé tes requêtes dans des blocs TRY/CATCH pour intercepter les éventuelles erreurs dedans..

Voir ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0
à première vu : les espaces entre
 $employe ['Or_Affectation']; ?>>"<?php echo $employe ['nom'] 

$employe['Or_Affectation']
-1