IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

fetchall et foreach


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut fetchall et foreach
    bonjour,
    voila je voudrais afficher mes produitd donc j ai fait un foreach pour afficher leur nom et j'aimerai afficher leur images respective a chacune j ai donc ecrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    foreach ($managerProduit->getListUnique($idCateg) as $ListeProduits)
    	{
    $body.='<div id="produitUnique">
    <div id="visuPrd">';
     
    $TabIllustration=$managerIllustration->getCouverture($ListeProduits->getId());
    print_r($TabIllustration);
    foreach($TabIllustration as $row)
    {
     
    if($row!="")
    {
    $body.='<img src="admin/illustration/mini/'.$row['idProduit'].'/'.$row['idProduit'].'_'.$row['position'].'_mini.jpg'.'"/>';
    }
    else
    {
    $body.='<img src="admin/illustration/mini/fr-default-home.jpg"/>';
    }
    }
     
    $body.='</div>';
    $body.='<div id="descrPrd">';
    $body.='<p class="marque"><span class="marque">'.$ListeProduits->getNom().'</span></p>';
    ..
    ?>
    mon probléme est que le tableau renvoyer pour l'image est Array ( [0] => 1 ) Array ( ) 
    donc mon premier produit a un image sinon comme dans le 2 produit on peut voir qu'il est vide je voudrai afficher une image par defaut mais cela ne marche avec foreach($TabIllustration as $row).

    que faire? merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (!empty($TabIllustration)) {
       foreach($TabIllustration as $row) {
              $body.='<img src="admin/illustration/mini/'.$row['idProduit'].'/'.$row['idProduit'].'_'.$row['position'].'_mini.jpg'.'"/>';
       }
    }
    else  {
          $body.='<img src="admin/illustration/mini/fr-default-home.jpg"/>';
    }

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    bonjour,
    deja j'avais deja essayer mais ca ne marche pas :

    print_r($TabIllustration):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => Array ( [id] => 1 [0] => 1 [legende] => acer [1] => acer [position] => 1 [2] => 1 [idProduit] => 1 [3] => 1 [couverture] => 1 [4] => 1 ) ) Array ( )
    

    voici les print_r($row):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [id] => 1 [0] => 1 [legende] => acer [1] => acer [position] => 1 [2] => 1 [idProduit] => 1 [3] => 1 [couverture] => 1 [4] => 1 ) 

    voici la fonction au cas ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    public function getCouverture($idProduit)
    	{
     
    		$requete = $this->db->prepare('SELECT * 
    		FROM illustration_produit WHERE idProduit =  :idProduit and couverture=1');
    		$requete->bindValue(':idProduit', (int) $idProduit, PDO::PARAM_INT);
    		$result=$requete->execute();
    		return $result = $requete->fetchAll();
     
     
    	}
    ?>
    si je comprend lorsque le foreach est utiliser la array vide disparait et donc il n'affiche pas l'image par defaut , je ne sais pas comment faire?
    merci

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    trouver merci j ai creer une fonction pour voir si la couverture exister avant dans la base et ca marche nikel
    merci encore

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    faut juste faire ca pour le retour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $requete->fetchAll();
    et t'as plusieurs Couverture par produit ?

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    non une seule.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par kate59 Voir le message
    non une seule.
    donc pourquoi faire un fetchAll ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dates] foreach imbrique ?
    Par pascale86 dans le forum Langage
    Réponses: 4
    Dernier message: 17/10/2005, 13h04
  2. Foreach + switch
    Par mic79 dans le forum Langage
    Réponses: 12
    Dernier message: 12/10/2005, 17h36
  3. Réponses: 4
    Dernier message: 14/09/2005, 18h23
  4. [C#] ArrayList, foreach et suppression
    Par lalystar dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/04/2005, 12h42
  5. [langage] foreach, last et valeurs de sortie
    Par Herode dans le forum Langage
    Réponses: 6
    Dernier message: 01/04/2005, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo