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

PHP & Base de données Discussion :

code qui ne passe par else


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut code qui ne passe par else
    bonjour,
    voila je voulais afficher une image par defaut sur ma page si il n'y a pas d'image mais je ne passe pas par le else alors que pour un des biens je n'ai pas d'image.
    J'ai fait ceci:

    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
    27
    28
    29
    30
    31
    <?php
    foreach($managerBien->getList(0,5) as $ListBien) 
    			{
     
                $body.='<div class="offer_box">';
    			 foreach($managerIllustration->getListPrincipaleById($ListBien->getId()) as $ListIllustration) 
    				{
     
    				if($managerIllustration->exists($ListBien->getId())!=0)
    				{
    				$body.='
                	<a href="details.html"><img src="'.RACINE.'/backend/illustrations/home/'.$ListBien->getReference().'/'.$ListIllustration->getLegende().'_home.jpeg" width="130" height="98" class="img_left" alt="" title="" border="0"/></a>';
    				}
    				else
    				{
    				$body.='sss
                	<a href="details.html"><img src="imagedefault_home.jpeg" width="130" height="98" class="img_left" alt="" title="" border="0"/></a>';
    				}
    				}
                    $body.='<div class="offer_info">
                    <span>Prix  150 000 $</span>
                    <p class="offer">';
    				$body.=''.substr($ListBien->getDescription(),0,50).'';             
                    $body.='</p>
                    <div class="more"><a href="details.html">...more</a></div>
                    </div>
    				
    				
                </div>';
                }
    ?>
    print_r($managerIllustration->exists($ListBien->getId())) me renvoie 1.
    print_r($managerIllustration->getListPrincipaleById($ListBien->getId())) me renvoie
    Array ( [0] => Illustration Object ( [erreurs:protected] => Array ( ) [id:protected] => 7 [legende:protected] => 1003V_1 [position:protected] => 1 [ref_bien:protected] => 7 ) )


    les fonctions :

    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
    <?php
    public function getListPrincipaleById($id)
    		{
     
    		$listeIllustration = array();
     
    		$sql = ('SELECT DISTINCT *
    					FROM simplimmo_galerie
    					INNER JOIN simplimmo_bien AS b ON simplimmo_galerie.ref_bien = b.id
    					INNER JOIN simplimmo_bien ON simplimmo_galerie.ref_bien=simplimmo_bien.id
    					WHERE simplimmo_galerie.ref_bien='.$id.' 
    					and position="1"');
     
     
    		$requete = $this->db->query($sql);
     
    		while ($illustration = $requete->fetch(PDO::FETCH_ASSOC))
    		$listeIllustration[] = new illustration ($illustration);
     
    		$requete->closeCursor();
     
    		return $listeIllustration;
     
    		}
    ?>
    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
    <?php
    /**
    		* Méthode vérifiant si l illustration existe
    		* @param $email string
    		* @return bool
    		*/
    	public function exists($id)
    	{
     
    		$requete = $this->db->prepare('SELECT COUNT(*) FROM simplimmo_galerie WHERE ref_bien = :id');
     
    		$requete->execute(array(':id' => $id));
     
    		return (bool) $requete->fetchColumn();
     
    	}
    ?>
    je comprend que les 2 fonctions renvoient une illustration, donc c'est cohérent mais comment faire alors?
    merci.

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Une chose me semble étrange.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM simplimmo_galerie WHERE ref_bien = :id
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (bool) $requete->fetchColumn();
    Pourquoi convertir un résultat numérique (COUNT(*)) en booléen ?

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    car je voulais qui 'il me renvoie un booleen pour le reste de mon code mais cela pour moi ne change pas si il renvoie un booleen ou le nombre niveau code.merci

  4. #4
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Si tu voulais un booléen, pourquoi faire ce test ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $managerIllustration->exists($ListBien->getId())!=0
    Je pense qu'il vaut mieux éviter de mélanger les types.

    Soit tu manipules des numériques, soit des booléens.

    Mais pas un mix de 2.

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    je comprend j'ai donc fait cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	/**
    		* Méthode vérifiant si l illustration existe
    		* @param $id string
    		* @return nbre
    		*/
    public function exists($id)
    	{
    		return $this->db->query('SELECT COUNT(*) FROM simplimmo_galerie where ref_bien='.$id.'')->fetchColumn();
    	}
    mais cela ne change rien.
    print_r($managerIllustration->exists($ListBien->getId())); me renvoie 4
    donc il ne voit pas que l'un des deux enregistrements n' a aucune illustration et c est celle ci ou il devrait passer par else.
    merci.

  6. #6
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    trouver merci !!!

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

Discussions similaires

  1. Recherche qui passe par ts les enregistrements identiques à ce qu'on cherche
    Par lebienestrare dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/09/2006, 13h00
  2. Ouvrir une BD qui est protegé par un mot de passe?
    Par issam16 dans le forum Sécurité
    Réponses: 1
    Dernier message: 18/07/2006, 18h15
  3. Qu'est ce qui se passe avec ce code ??
    Par adlich dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2006, 12h04

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