Afficher une photo si existante en bdd sinon une image par default

Mammouth du PHP | 643 Messages

21 mars 2016, 18:52

Salut à tous.
Voilà un petit moment que je bataille sur un mon script.
J'ai un formulaire qui permet au visiteur de poster une photo que j'enregistre dans 3 trois fichier car je les redimenssionnes
fichier annonce, le fichier annonce/600 et annonce/300.
Donc les photos sont correctement redimenssioné et rennomé j'ai vérifié dans mon ftp.

Même si la photo existe en bdd le script actuellement n'affiche que la photo de remplacement, je comprends pas pourquoi ...

Maintenant coté code:
<?php

    $path = NULL; // relation avec mes photos
    if(empty($bdd)) {
        session_start();
        include("../conndb.php");
        include('variables.php');
        $path = '../';
    }

// On demande à php d'afficher la photo du dossier 600 si elle existe sinon on affiche une photo selon la thématique
$image = !empty($ligne['image']) && file_exists($path.'img/annonce/600/'.$ligne['image']) ? 'img/annonce/600/'.$ligne['image'] : 'img/remplacement/'.simplification($aLoisirs[$ligne['id_type_loisirs']]).'.jpg';

// On affiche donc la photo avec le reste des infos
echo'<div class="annonce">
           <div class="row">
						<div class="col-lg-3 col-md-4 col-sm-4">  
							<div class="thumbnail"><a href="annonce_zoom.php?id='.$ligne['id_loisirs'].'">
								<img class="img-responsive" src="'.$image.'" alt="'.$ligne['titre'].'" title="'.$aLoisirs[$ligne['id_type_loisirs']].' '.$ligne['titre'].'"></a>
							</div>
						</div>	
								<div class="col-lg-7 col-md-6 col-sm-6">
                    						<div class="tour_list_desc">
								<div id="score">'.$aLoisirs[$ligne['id_type_loisirs']].'</div>
								<h2>'.ucfirst(strtolower($ligne['titre'])).'</h2>
								<p class="hash_inversed"><i class="fa fa-calendar"></i> '.$la_variable_qui_vas_bien.'</p>
								<p>'. stripslashes (cutTexte($ligne['description'], 220, '...')).'</p>
								<p class="hash"><i class="fa fa-map-marker"></i> '.strip_tags ($ligne['city']).' ('.str_pad($ligne['id_departements'], 2, "0", STR_PAD_LEFT).')</p>
								<a href="annonce_zoom.php?id='.$ligne['id_loisirs'].'"><input type="button" class="btn_1" value="EN DETAILS"></a>	
                    			</div>
                    		     </div>
				</div>
			</div>'
Le problème est donc que même si la photo existe bien il affiche l'image par default et non celle que la personne à poster ....
Où est le problème svp ?

Mammouth du PHP | 2703 Messages

21 mars 2016, 20:06

il faut afficher $path.'img/annonce/600/'.$ligne['image'] et comparer avec le vrai chemin de l'image pour voir ce qui cloche.

Mammouth du PHP | 643 Messages

21 mars 2016, 21:30

Donc j'ai juste fait un:
echo 'test'.'<img src="'.$path.'img/annonce/600/'.$ligne['image'];
ce qui m'affiche de généré:
<img src="img/annonce/600/<br><div class=" container"="">
...

Mammouth du PHP | 643 Messages

21 mars 2016, 21:37

J'ai donc pour l'instant:
<?php
		//Selection des l'annonce
		$sql = "SELECT * FROM loisirs WHERE id_loisirs = ".$_GET['id']." AND valide = 1";
		$req = $bdd->query($sql);

while($ligne = $req->fetch(PDO::FETCH_ASSOC))// On affiche chaque entrée une à une
 		{

// Traitement image        
		$image = !empty($ligne['image']) && file_exists($path.'img/annonce/600/'.$ligne['image']) ? 'img/annonce/600/'.$ligne['image'] : 'img/remplacement/'.simplification($aLoisirs[$ligne['id_type_loisirs']]).'.jpg';
		
		// Debug
		//echo 'test de la ligne image '.$image;
		//echo 'test'.'<img src="'.$path.'img/annonce/600/'.$ligne['image'];
		
		// Ce que je veut insérer
		if (!empty ($ligne['url_fnac'])) {
		$mavariable =  '<div class="container">
	<div class="col-md-8">
		<div class="row">
		  <div class="col-md-5"><a target="_blank" href="'.$ligne['url_site'].'"><img class="img-responsive thumbnail" src="'.$ligne['photo'].'" alt="'.$ligne['titre'].'" title="'.$aLoisirs[$ligne['id_type_loisirs']].' '.$ligne['titre'].'"></a>';
		}else{ echo'<br><div class="container">
	<div class="col-md-8">
		<div class="row">
		  <div class="col-md-5"><a target="_blank" href="annonce_zoom.php?id='.$ligne['id_loisirs'].'"><img class="img-responsive thumbnail" src="'.$image.'" alt="'.$ligne['titre'].'" title="'.$aLoisirs[$ligne['id_type_loisirs']].' '.$ligne['titre'].'"></a>';
		}
		// fin 
		
		
		?>
et j'affiche la photo normalement
<?php echo $mavariable ;?>

Sinan en faisant:
echo '<img src="../img/annonce/600/'.$ligne['photo'].'">';
j'obtien de généré :
<img src="../img/annonce/600/loto-du-terroir.jpg">

mais l'image ne s'affiche pas ( ca met le pictogramme comme quoi il ny a pas la photo ...