Erreur dans mon code...

Amnezia
Invité n'ayant pas de compte PHPfrance

17 juin 2011, 11:01

Salut à tous, je galère depuis 8 heures à mettre un condition if, else dans ma galerie photo Prettyphoto pour ceux qui connaissent, je souhaite que mon titre soit un lien cliquable seulement si le champ correspondant de mon formulaire ait été rempli, donc que le champ dans ma table de ma BDD Mysql ne soit pas vide.

J'ai fais ca ( je débute ) :
echo if(!empty($ligne->img_titrelien)){ 
		'<a href="'.$ligne->img_titrelien.'" "target="_blank"> '.$ligne->img_titre.'</a>'
	 } 
	 else {
		.$ligne->img_titre.
	 };
Mais j'ai une erreur unexpected T_IF

ViPHP
ViPHP | 2577 Messages

17 juin 2011, 11:35

Bonjour,
if(!empty($ligne->img_titrelien)){
             echo   '<a href="',$ligne->img_titrelien,'" "target="_blank"> ',$ligne->img_titre,'</a>';
         }
         else {
             echo  $ligne->img_titre;
         }
A défaut de tout avoir corrigé, il y a moins d'erreur.

Amnezia
Invité n'ayant pas de compte PHPfrance

17 juin 2011, 11:42

Merci j'essaie ca :)

Amnezia
Invité n'ayant pas de compte PHPfrance

17 juin 2011, 12:04

Tout d'abord, désolé du double post.

Je voulais te remercier Mazarini pour ta réponse, il n'y a plus aucune faute :).

Seulement, J'ai le même problème depuis hier, je vais expliciter :

Mon maitre de stage m'a demander de mettre cette galerie photo : http://www.no-margin-for-errors.com/pro ... box-clone/

Je l'ai donc mise, et maintenant il me demande que le titre soit en lien seulement s'il a rempli une zone de texte spéciale dans le formulaire d'upload.

Sur la page HTML, la ligne de code pour afficher une image est de ce type :
<a href="grosseimage.jpg" rel="prettyPhoto[gallery1]" title="Name of image.">
<img src="petite image.jpg" alt="Name of image" link='<a href="http://www.link.com" target="_blank">Click here for external link</a>' /></a>
Dans mon cas, j'ai donc remplacer les image par des variables en PHP afin d'afficher toutes celles stockées dans ma BDD grâce à
while( $ligne = $resultats->fetch() )
Ma ligne de code est donc :
<li>
		<a href="<?php echo($ligne->img_lien); ?>" rel='prettyPhoto[gallery1]' title="<?php echo($ligne->img_commentaire); ?>"><img width="100" height="100" src="<?php echo($ligne->img_lien);?>" alt="<?php echo($ligne->img_titre); ?>" link = " <?php if(!empty($ligne->img_titrelien)){
             echo   '<a href="',$ligne->img_titrelien,'" "target="_blank"> ',$ligne->img_titre,'</a>';
         }
         else {
             echo  $ligne->img_titre;
         } ?>"></a>
	</li>
Ca marche seulement quand le lien n'est pas cliquable, mais quand il l'est, le lien s'affiche à côté de l'image miniature suivi de ces deux caractères "> à chaque fois, je pense que ca montre que c'est au niveau des guillemets que ca passe pas, et peut-être à cause du "target="_blank" qui comporte bizarrement 3 guillemets Oo... quoique même en enlevant la première guillement juste avec target, j'obtiens le même résultat ...
J'ai peut-être une cote en trop...

J'ai essayé de testé juste la partie du if, else sans le reste du code, la syntaxe marche.
Si vous avez des idées je suis preneur,
Cordialement.

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

17 juin 2011, 15:35

salut,

a tu regardé ton code source html ?

parce que ça donne des chose comme ça
avec le if
                <a href="<?php echo($ligne->img_lien); ?>" rel="prettyPhoto[gallery1]" title="<?php echo($ligne->img_commentaire); ?>"><img width="100" height="100" src="image.png" alt="blabla" link = "<a href="lien" "target="_blank"> titre</a> "></a>

avec le else :

				<a href="<?php echo($ligne->img_lien); ?>" rel="prettyPhoto[gallery1]" title="<?php echo($ligne->img_commentaire); ?>"><img width="100" height="100" src="image.png" alt="blabla" link = " titre "></a>
le second cas ça va, mais le 1er c'est la cata, et ça implique tes soucis :)

d'ailleur est tu sur que tes commentaire ne contiennent pas de " ?

ensuite il serait bon d'être cohérent dans la notations des attribut html et de ne pas changer suivant le vent ;) (regard link).

@+
Il en faut peu pour être heureux ......