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

vinkey33 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Loki
 
à première vu : les espaces entre
 $employe ['Or_Affectation']; ?>>"<?php echo $employe ['nom'] 

$employe['Or_Affectation']
-1