[RESOLU] php et champ sql vide

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 06:35

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>

Mammouth du PHP | 2278 Messages

31 juil. 2014, 07:57

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>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 08:19

Bonjour,

Cela ne fonctionne pas ... Il apparaît :

Code : Tout sélectionner

string(6) " "
Merci

Mammouth du PHP | 2278 Messages

31 juil. 2014, 08:33

Ca fonctionne très biuen au contraire: ton champ contient 6 espaces....
Supprime le var_dump.
et fais un trim'$varvideo) avant le if
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 12:55

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

ViPHP
xTG
ViPHP | 7331 Messages

31 juil. 2014, 13:18

if ( trim($varvideo) == "" ){
Voir en plus élégant :
if ( empty( trim($varvideo) ) ){

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 13:22

Oui c'est ce que j'ai mis et pourtant alors que la variable est vide l'image apparaît ! grrrrr

ViPHP
xTG
ViPHP | 7331 Messages

31 juil. 2014, 13:28

Non ce n'est pas ce que tu as mis...
Relis bien. ;)

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 13:32

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>
Modifié en dernier par moogli le 31 juil. 2014, 16:51, modifié 1 fois.
Raison : correction bbcode code => php

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

31 juil. 2014, 16:58

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); )

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

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 17:55

Hello,

J'ai essayé la version php <5.5 qui fonctionne.

Voici les résultats que j'obtiens avec

Code : Tout sélectionner

var_dump($varvideo);
Pour ligne vide

Code : Tout sélectionner

string(6) " "
Pour ligne pleine

Code : Tout sélectionner

string(43) blablablablabla
...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

Mammouth du PHP | 2278 Messages

31 juil. 2014, 18:31

Quel est le type de la colonne dans ta BDD?
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

F2B
Petit nouveau ! | 8 Messages

31 juil. 2014, 19:20

Bonjour,

Effectivement, je pense que la difficulté se situe plutôt côté BDD.

Voici la capture ...

Pour info : sur les champs

Code : Tout sélectionner

'video'
vides de la BDD, il apparaît sur les images liens de la page web l'URL du site web ...

Merci pour votre aide
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

F2B
Petit nouveau ! | 8 Messages

01 août 2014, 14:51

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