Page 1 sur 1
php et champ sql vide
Posté : 31 juil. 2014, 06:35
par F2B
Bonjour,
Je souhaite faire apparaître une image uniquement si le champ 'video' de ma base SQL est non vide.
Le code ci-dessous fonctionne correctement et affiche bel et bien l'image quand le champ de la base SQL contient une information ...
... MAIS il ne parvient pas à identifier le champ de la base SQL quand celui-ci est vide (null ?) et donc ne pas faire apparaître l'image !
Merci pour votre aide
Code : Tout sélectionner
<td style='text-align:center;'>
<?php
$varvideo=$hm->Zb('rs:def:video');
if ($varvideo==""){
} else {?>
<A HREF="<?php echo $hm->Zb('rs:def:video'); ?>" target="_blank"><img src="btn_icon_play.gif"></img></a><?php
}
?>
</td>
Re: php et champ sql vide
Posté : 31 juil. 2014, 07:57
par sirakawa
1) Principe simple de débogage: quand une variable ne fait pas ce qu'on croit, on la fait afficher en php avec var_dump:
2) La norme met les balises html en minuscules.
3) puisque $varvideo est définie, pour quoi écrire plus loin : echo
hm->Zb('rs:def:video') ?
<td style='text-align:center;'>
<?php
$varvideo=$hm->Zb('rs:def:video');
var_dump($varvideo); die();
if ($varvideo==""){
} else {?>
<A HREF="<?php echo $hm->Zb('rs:def:video'); ?>" target="_blank"><img src="btn_icon_play.gif"></img></a><?php
}
?>
</td>
Re: php et champ sql vide
Posté : 31 juil. 2014, 08:19
par F2B
Bonjour,
Cela ne fonctionne pas ... Il apparaît :
Merci
Re: php et champ sql vide
Posté : 31 juil. 2014, 08:33
par sirakawa
Ca fonctionne très biuen au contraire: ton champ contient 6 espaces....
Supprime le var_dump.
et fais un trim'$varvideo) avant le if
Re: php et champ sql vide
Posté : 31 juil. 2014, 12:55
par F2B
Super.
Peux-tu me préciser le code final car j'ai essayé cela et l'image apparaît dans tous les cas :
Code : Tout sélectionner
<td>
<?php
$varvideo=$hm->Zb('rs:def:video');
if (trim($varvideo=="")){
} else {?>
<A HREF="<?php echo $hm->Zb('rs:def:video'); ?>" target="_blank"><img src="btn_icon_play.gif"></img></a><?php
}
?>
</td>
Merci
Re: php et champ sql vide
Posté : 31 juil. 2014, 13:18
par xTG
if ( trim($varvideo) == "" ){
Voir en plus élégant :
if ( empty( trim($varvideo) ) ){
Re: php et champ sql vide
Posté : 31 juil. 2014, 13:22
par F2B
Oui c'est ce que j'ai mis et pourtant alors que la variable est vide l'image apparaît ! grrrrr
Re: php et champ sql vide
Posté : 31 juil. 2014, 13:28
par xTG
Non ce n'est pas ce que tu as mis...
Relis bien.

Re: php et champ sql vide
Posté : 31 juil. 2014, 13:32
par F2B
J'ai recopié ce code et cela ne fonctionne pas. L'image s'affiche dans tous les cas ...
<td>
<?php
$varvideo=$hm->Zb('rs:def:video');
if ( trim($varvideo) == "" ){
} else {?>
<A HREF="<?php echo $hm->Zb('rs:def:video'); ?>" target="_blank"><img src="btn_icon_play.gif"></img></a><?php
}
?>
</td>
Re: php et champ sql vide
Posté : 31 juil. 2014, 16:58
par moogli
salut,
le if vide c'est le mal
version php >= 5.5
<td>
<?php
$varvideo = trim($hm->Zb('rs:def:video'));
if (!empty(trim($hm->Zb('rs:def:video')))) {
echo '<a href="', $hm->Zb('rs:def:video'), '" target="_blank"><img src="btn_icon_play.gif"/></a>';
}
?>
</td>
version php <5.5
<td>
<?php
$varvideo = trim($hm->Zb('rs:def:video'));
if (!empty($varvideo)) {
echo '<a href="', $varvideo, '" target="_blank"><img src="btn_icon_play.gif"/></a>';
}
?>
</td>
Comme l'a indiqué sirakawa il fuat debugguer et voir ce que contient $varvideo = trim($hm->Zb('rs:def:video')); (donc un var_dump($varvideo); )
@+
Re: php et champ sql vide
Posté : 31 juil. 2014, 17:55
par F2B
Hello,
J'ai essayé la version php <5.5 qui fonctionne.
Voici les résultats que j'obtiens avec
Pour ligne vide
Pour ligne pleine
...43 caractères
En fait ce qui est étrange c'est le string(6) " " alors qu'il n'y a rien dans la base SQL ...
Helpppppp
Re: php et champ sql vide
Posté : 31 juil. 2014, 18:31
par sirakawa
Quel est le type de la colonne dans ta BDD?
Re: php et champ sql vide
Posté : 31 juil. 2014, 19:20
par F2B
Bonjour,
Effectivement, je pense que la difficulté se situe plutôt côté BDD.
Voici la capture ...
Pour info : sur les champs
vides de la BDD, il apparaît sur les images liens de la page web l'URL du site web ...
Merci pour votre aide
Re: php et champ sql vide
Posté : 01 août 2014, 14:51
par F2B
Bonjour,
Finalement, j'ai contourné le problème en faisant :
Code : Tout sélectionner
<td style='text-align:center;'>
<?php
$varvideo = trim($hm->Zb('rs:def:video'));
if(substr($varvideo,0,4) == 'http')
{?>
<A HREF="<?php echo $hm->Zb('rs:def:video'); ?>" target="_blank"><img src="btn_icon_play.gif"></img></a> <?php
}
?>
</td>
Merci pour votre aide