Problème appel image depuis BD

Eléphanteau du PHP | 15 Messages

29 déc. 2008, 19:45

Bonsoir à tous !

Je suis un Newbie en php et j'ai un petit problème qui se pose à moi...
Je souhaite afficher une série de news se situant dans ma BD sur ma homepage.
Le problème se situe au niveau de l'affichage de l'image.
Je pense que mon code est bon puisque après vérification dans firebug, c'est bien l'image en question qui est décrite mais elle ne s'affiche pas...

Voici mon code :

  <?php
   $requete = "SELECT * FROM articles WHERE id='1'";
$resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());

while ($ligne = mysql_fetch_assoc($resultat)) {

 ?>   
 
 		<div id="article-head">
        
        	<div id="calendar">
            	<div id="calendar-bottom">
                </div>
        	</div>
        
       		<div id="titre">
        	</div>
            
        </div>
        
        <div id="intro">
        <?php 
		echo $ligne ['intro']
		?>
        	<div id="img">
            <img src="<?php echo $ligne ['image'] ?>" />
            </div>
        	
        </div>
 
 
    </div>
  <?php }


Ai-je fais une boulette ? Une âme charitable pour me remettre sur le droit chemin ?

ViPHP
AB
ViPHP | 5818 Messages

29 déc. 2008, 19:53

$ligne ['intro'] s'affiche normalement ?

Regarde dans le code html généré (code source de la page) pour voir ce qu'affiche $ligne ['image'].
Est-ce le bon chemin depuis le script en cour ?

Sinon tu as des soucis avec tes id puisqu'un id est unique et que tu les mets dans une boucle. Si tu en as besoin il faudrait les incrémenter.

Eléphanteau du PHP | 15 Messages

29 déc. 2008, 20:00

Merci de ta réponse

Oui oui, cela semble bon, voilà ce qu'il m'affiche : <img src="../img/article1.jpg" />
ce qui est bien le chemin relatif vers mon fichier.

Mes Id sont auto-increment et je n'ai aucun problème avec les autres champs ni avec $ligne['intro'].

ViPHP
AB
ViPHP | 5818 Messages

29 déc. 2008, 20:08

Pour être certain, mets <img src="../img/article1.jpg" /> dans un bout de code html de ton script pour voir si l'image s'affiche.

Eléphanteau du PHP | 15 Messages

29 déc. 2008, 20:14

En effet, elle ne s'affiche pas non plus...
Par contre si je la place dans mon css de la sorte :

background-image:url(../img/article1.jpg);

Elle s'affiche, c'est donc que mon lien est bon non ? :cry:

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

29 déc. 2008, 20:50

Pas d'erreur au niveau de php, il faut juste vérifier le chemin de l'image par rapport à la page qui l'affiche :)

Le chemin de l'image doit être relatif à la page qui l'appel. Où se trouve ton script php et où se trouve ton image par rapport à celui-ci ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 15 Messages

29 déc. 2008, 20:53

Mon script php se trouve dans index.php
l'image, elle est dans le dossier img de mon site développé en local donc nomdusite/img/article1.jpg
L'index.php se trouve quand à lui à la racine.

Que veux-tu dire par relatif à la page qui l'appel ?

Merci pour ton aide !

ViPHP
AB
ViPHP | 5818 Messages

29 déc. 2008, 21:03

Normalement d'après ce que tu nous dis, le chemin devrait être <img src="img/article1.jpg" />

Eléphant du PHP | 453 Messages

29 déc. 2008, 21:06

Salut Ayreon,

exemple de liens absolus :

Code : Tout sélectionner

http://www.phpfrance.com/media/section_visiteurs/image.jpeg
exemple de liens relatif : (admettons que tu sois sur index.html)

Code : Tout sélectionner

media/section_visiteurs/image.jpeg

Petite question : Que vaut --> $ligne ['image'] ? Et là, il me semble que tu as l'erreur puisque en parcourant vite fait les autres messages, j'ai lu que $ligne ['image'] = ../img/article1.jpg.

Cela veut dire en html :
- nous sommes dans un lien relatif.
- sort du dossier courant ;)
- ouvre le dossier img
- prend le fichier article1.jpg

Logiquement, cela devrait être :
- nous sommes dans un lien relatif.
- ouvre le dossier img
- prend le fichier article1.jpg

++

ViPHP
AB
ViPHP | 5818 Messages

29 déc. 2008, 21:17

Et si le chemin n'est pas le même quand tu mets l'adresse de l'image dans ton css, c'est sans doute que ton css est dans un dossier et qu'il est lu depuis ta page index.php avec un link href=...

Invité
Invité n'ayant pas de compte PHPfrance

29 déc. 2008, 22:16

Merci beaucoup à tous, c'est réglé ! En effet, le problème était bien qu'il fallait img/article1.jpg et non pas ../img/article1.jpg

Merci de vous être attardé sur mon cas :D

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

29 déc. 2008, 22:49

Modération :
Ayreon, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...