pb récupération données dans un tableau

Petit nouveau ! | 6 Messages

25 juil. 2011, 22:24

bonsoir;
j'essai de récupérér des données a partir d'une table a travers une méthode d'une classe mais j'aurai toujour un résultat qui est le deuxième dans la table!!!!!!!!!!
mon code est le suivant
la classe
<?php
class produit
    {    
        public $codepv;
        public $lib;
               public function produit( $codepv=null,$lib=null)
                {
       $this->codepv=  $codepv;
        $this->lib=$lib;
               $this->pu1v=  $pu1v;

}  
 public function getproduit()
{      		
$requete="select codepv from produit ;";
  $res=odbc_exec( $conn,$requete ); 
$row=array();
 $row = odbc_fetch_array($res) ;
return $row;
}
         }

 ?>
l'affichage dans une autre page
<?php
include 'produitv.php';
$p=new produit();
$o=$p->getproduit();
echo "<select name=A size=1> ";
foreach($o as $row)
{       
    echo "<option value=".$row['cod'].">".$row['cod']."<option>";
}
?>

merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 juil. 2011, 00:51

salut,

ton code comporte des erreurs :
- dans la méthode getproduit(), la variable $conn n'est déclarée nulle part, je m'étonne que cela fonctionne !
- cette méthode ne retourne qu'un seul enregistrement ! je ne sais pas comment le sgbd derrière retourne le lot d'enregistrement de la table quand il n'y a pas de tru d'effectué dessus.
<?php
 public function getproduit()
{              
$requete="select codepv from produit ;";
  $res=odbc_exec( $conn,$requete ); // <= $conne n'est pas déclarée
$row=array();
 $row = odbc_fetch_array($res) ; //<= lecture d'un seul enregistrement !
return $row;
}
 ?>
au final ton code fonctionne comme tu le souhaite il ne retourne qu'un seul enregistrement.

pour la méthode a suivre afin d'avoir tous les enregistrements je te conseil de regarder la doc de la fonction odbc_fetch_array (les exemples des commentaires sont assez parlant ;) )

@+
Il en faut peu pour être heureux ......