Ingection Bdd en php5

Fermé
saf@1 Messages postés 11 Date d'inscription samedi 30 janvier 2016 Statut Membre Dernière intervention 8 février 2016 - Modifié par jordane45 le 2/02/2016 à 16:20
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 4 févr. 2016 à 03:14
Bonjour à tous.
Je n'arrive pas à voir une faute dans mon côde. Je veux afficher des infos d'une table et voici l'erreur:< Notice: Undefined variable: prodts in C:\wamp\www\3KG\view\Vcompte.php on line 28>.

Voici ce que jai fais au niveau de ma Controleur:

<?php
    function chargerclasse($classe)
 {
  require ('model/class/'. $classe . '.php');
 }

 spl_autoload_register('chargerclasse'); // fonction d'auto chargement de classe.

   $comp= new Produit_commandeManager($bdd);
 //recuperons 
     $prodts= $comp->Compte();
// insertion de la vue 
include(dirname(__FILE__).'/../view/Vcompte.php');
?>


Au niveau de ma vu:

<table id="div1">
 <tr>
      <td>infos compte</td>
     <td>modifier</td>
 </tr>
</table>
     <br/>
     <br/> Vos dix dernières commandes
<table id="div1">
  <tr>
      <td>Nom des produits achettés</td>
      <td>Date commande</td>
      <td>Prix unitaire</td>
      <td>Quantité</td>
  </tr>
   <?php foreach($prodts as $pro) { ?>
     <tr>
   <td>...</td>
   <td><?php echo $pro->date_commande(); ?></td>
   <td>...</td>
   <td>....</td>
  <td id="tdn"><a href="index.php?page=x"><span>Détails</span></a></td>
    </tr>
  <?php } ?>
</table>

Au niveau sql:

public function  Compte() // code sql-php
 {
  $Produit_commande = array(); // les resultats sont retournés dans ce tableau
   
 $req = $this->_db->prepare("SELECT * FROM produit_commande ORDER BY id_commande DESC LIMIT 0, 10") or die (print_r($this->_db->errorinfo()));
   
 $req->execute();
   
  while($donnees=$req->fetch(PDO::FETCH_ASSOC))
 {
 $Produit_commande[] = new produit_commande($donnees);
 }
 
       return $Produit_commande;
  }



EDIT : Correction des balises de code.

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
2 févr. 2016 à 16:22
Bonjour,

Vu que tu es en PDO... pas besoin de faire une boucle pour créer un ARRAY avec le résultat de ta requête
  while($donnees=$req->fetch(PDO::FETCH_ASSOC))
 {
 $Produit_commande[] = new produit_commande($donnees);
 }

Il suffit d'utiliser un fetchAll()
comme ceci :
 $Produit_commande = $req->fetchAll();

0
saf@1 Messages postés 11 Date d'inscription samedi 30 janvier 2016 Statut Membre Dernière intervention 8 février 2016
2 févr. 2016 à 22:39
Salut jordane45, le blêm perciste tjrs voici la le sms d'erreur: -Undefined variable: prodts in C:\wamp\www\3KG\view\Vcompte.php on line 28.
-Warning: Invalid argument supplied for foreach() in C:\wamp\www\3KG\view\Vcompte.php on line 28. Que faire?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > saf@1 Messages postés 11 Date d'inscription samedi 30 janvier 2016 Statut Membre Dernière intervention 8 février 2016
4 févr. 2016 à 03:14
Que contient ton fichier (complet) C:\wamp\www\3KG\view\Vcompte.php ?

Que contient ta class produit_commande ?
0