Opérateur terniaire + php/html imbriqué

SpcK
Invité n'ayant pas de compte PHPfrance

02 oct. 2005, 10:19

Slt, encore une petite question :
je veux faire un test du style (condition) ? instruction si vrai : instruction si faux. Ceci afin de ne pas faire de lien si l'url n'existe pas.

Voici mon code
 
<?php ($data['url']<>'') ? ?>
    <td> <a href="<?php echo($data['url']); ?>" target="_blank"><?php echo($data['Nom']); ?></a></font></td>
    <?php : ?>
    <td><?php echo($data['Nom']); ?></font></td> 
Je pense que je m'embrouille (erreur Parse error: parse error, unexpected ';' ) dans l'imbrication php / html qui donne en particulier 2 ? qui se suivent.
Une petite aide serait sympa, merci d'avance

Mammouth du PHP | 19672 Messages

02 oct. 2005, 10:29

Tu te compliques la vie. Essaye comme ça:
<?php
$cible = ($data['url'] != '') ? "<a href=\"". $data['url'] ."\"" : $data['url'];
?>
    <td><?php echo($cible); ?></td>
Note bien au passage que "différent" en PHP s'écrit "!=" et non "<>", cette dernière formulation étant propre au SQL.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

SpcK
Invité n'ayant pas de compte PHPfrance

02 oct. 2005, 12:14

Merci de ta réponse mais je galère comme un malade sur ce bout de code depuis 1 plombe (je crois que je vais passer les 6 prochains mois dans le forum débutant...faudra d'ailleurs que je pense à m'inscrire quand j'aurais fini de coller sur mon code).

Dans ton exemple, que je pense comprendre, la balise a href n'est pas fermée, il manque le target=_blank et je voudrais aussi afficher le nom du tournoi ($data['Nom']).
En français :
si je possède le tableau en pdf ==> affichage du nom + lien dessus
si je ne possède pas le pdf ==> affichage du nom uniquement

Sinon, question subsidiaire : est-ce normal que les novices en php rêvent de points, d'apostrophes et de guillemets ?

Merci encore bcp pour ton aide précieuse

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 oct. 2005, 12:34

Dans ce cas il te suffit de rajouter le bout de code qu'il te manque... et pour mettre le nom du tournois le code de Cyrano devrai ressembler a ceci:
<?php
$cible = ($data['url'] != '') ? "<a href=\"". $data['url'] ."\" target=\"_blank\"> ".$data['Nom']." </a>" : $data['Nom'];
?>
    <td><?php echo($cible); ?></td>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

SpcK
Invité n'ayant pas de compte PHPfrance

02 oct. 2005, 12:38

Génial merci [Résolu]