PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-08-2009 15:35:49

cedric
Membre
Inscription : 28-08-2009
Messages : 6

poo/boucle sur l'objet

Je démarre en poo, et suis deja un peu bloquer... Je fais une requete sql, cela me ramene un objet avec plusieurs resultats (id, ref,...) je sais qu'il est bien la car un var_dump me le montre bien, mais comment je fais pour afficher la liste des references???

resultat du var dump:
[c]array(10) {
  [1]=>
  object(element)#1 (6) {
    ["id_element"]=>
    string(2) "57"
    ["ref_element:private"]=>
    string(9) "mc-1042tr"
    ["ean:private"]=>
    string(1) "0"
    ["nom_element:private"]=>
    string(49) "Ecran 10''4 Etanche IP65 six faces - Transflectif"
    ["desc_element:private"]=>
    NULL
    ["lien_photo:private"]=>
    string(14) "nopictures.jpg"
  }
  [2]=>
  object(element)#2 (6) {
    ["id_element"]=>
    string(2) "53"
    ["ref_element:private"]=>
    string(10) "jlt-

.......

[/c]

si je veux afficher id_element je fais quoi???

j'ai essayé des foreach, des fetch_objet, array,... mais toujours une erreur du genre
Catchable fatal error:  Object of class element could not be converted to string in D:\www\aer

Une solution?
.....

Hors ligne

#2 28-08-2009 16:18:22

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : poo/boucle sur l'objet

Salut,

Le var dump indique qu'il s'agit d'un tableau d'objet.
Comment récupère-tu ce tableau ?

sinon je dirais $tableau[1]->id_element


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#3 28-08-2009 16:51:06

cedric
Membre
Inscription : 28-08-2009
Messages : 6

Re : poo/boucle sur l'objet

merci pour cette reponse rapide,

en effet, mais si je ne parviens pas a boucler sur ce tableau d'objet,

ce tableau est recuperer par une factory $element=ElementFactory::ElementNouveaute($_SESSION['lang'], 'art', 20);

ou j'ai ma requette sql+
[c]$result=mysql_query($query);
while($res=mysql_fetch_array($result)) {
       

        list ($id_element,$ref_element,$ean_element,$nom_element,$lien_photo)=mysql_fetch_array($result);

        $element=new element();
        $element->setId_element($id_element);
        $element->setRef_element($ref_element);
        $element->setEan($ean_element);
        $element->setNom_element($nom_element);
        $element->setLien_photo($lien_photo);

        $elements[$aleatoire[$i]]=$element;
        $i++;
        }
return $elements;[/c]

$aleatoire est juste la pour recreer un tableau ou les resultats sont "shuffler", cette partie la est bonne mon var_dump me le confirme

Hors ligne

#4 28-08-2009 16:58:16

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : poo/boucle sur l'objet

Si j'ai bien compris... smile


foreach($tableu as $element){
  echo $element->id_element;
}
 

Par contre, les deux mysql_fetch_array($result) à la suite dans ton code m'interpellent.
ne serai-ce pas plutôt :

list ($id_element,$ref_element,$ean_element,$nom_element,$lien_photo)=$res;


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#5 28-08-2009 17:22:29

cedric
Membre
Inscription : 28-08-2009
Messages : 6

Re : poo/boucle sur l'objet

Merci, c'est exactement mon erreur... :-)
C'est le contraire

[c]foreach($element as $values){

        echo $values->id_element;

      }[/c]

je restais toujours sur $element->id_element....

merci

Hors ligne

#6 28-08-2009 17:24:38

cedric
Membre
Inscription : 28-08-2009
Messages : 6

Re : poo/boucle sur l'objet

pour le double fetch, c'est corrigé, je ne comprend pas comment cela marchait avec ca, mais bon , a chaques jours...

Hors ligne

#7 28-08-2009 17:29:38

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : poo/boucle sur l'objet

foreach($element as $values){
        echo $values->id_element;
}

C'est ce que je voulais dire, je n'avais pas vue que le tableau s'appelait $element...

Pour le double fetch, cela marchait mais tu ne devais avoir qu'un objet sur 2.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#8 28-08-2009 17:34:49

cedric
Membre
Inscription : 28-08-2009
Messages : 6

Re : poo/boucle sur l'objet

en effet, je n'avais pas vu, un resultat sur 2, heuuu, il se fait tard ou je suis mauvais, mais je vois pas pourquoi???

Hors ligne

#9 28-08-2009 17:39:54

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : poo/boucle sur l'objet


while($res=mysql_fetch_array($result)) {
    list ($id_element,$ref_element,$ean_element,$nom_element,$lien_photo)=mysql_fetch_array($result);
//...
 

Le premier fetch lit une ligne de résultat et la met dans $res.
Le deuxième lit la ligne suivante et l'affecte suivant le list.
Et ainsi de suite..
Donc chaque ligne lue dans $res n'est pas exploitée.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#10 28-08-2009 17:41:32

cedric
Membre
Inscription : 28-08-2009
Messages : 6

Re : poo/boucle sur l'objet

ben oui, évidement...

merci pour cette lecon ;-)

bon we

Hors ligne

#11 28-08-2009 17:43:27

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : poo/boucle sur l'objet

De rien, bon week-end smile


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

Pied de page des forums