Test champs base mysql

t671 -  
jona303 Messages postés 390 Statut Membre -
Bonjour,

Je pense que c'est tout bête, mais je bloque pour tester un champs d'une base mysql !

Si le champs "datefr" est vide alors ........ , sinon .......

if (datefr == "") { echo '<td bgcolor="#669988" width="230px" align="left">'.$row['datefr'].' '.$row['heure'].'</td>'; }
else { echo '<td bgcolor="#669988" width="230px" align="left">Le '.$row['datefr'].' à '.$row['heure'].'</td>'; }

Là, le "else" est toujours éxécuté !!!! Pourquoi ? Où est mon erreur ?

Merci
A voir également:

7 réponses

jona303 Messages postés 390 Statut Membre 28
 
d'ou tu sors datefr?? tu mettrais pas un $ devant?? :)
0
t671
 
datefr est un champs de la base. Il peut contenir un enregistrement ou pas.

Si je met
if ($datefr == "")
c'est pareil ....... le résultat ne m'affiche que la condition else !
0
jona303 Messages postés 390 Statut Membre 28
 
et ta requete sql elle ressemble à quoi ?
0
t671
 
Voilà (dont, datefr est un champs de la table manifestations):

$select = 'SELECT * FROM manifestations ORDER BY date ASC';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

{
//affichage des résultats
while($row = mysql_fetch_array($result))

{
echo '<table width="700px" border="1">';
echo '<tr>';

if ($datefr == " ") { echo '<td bgcolor="#669988" width="230px" align="left">'.$row['datefr'].' '.$row['heure'].'</td>'; }
else { echo '<td bgcolor="#669988" width="230px" align="left">Le '.$row['datefr'].' à '.$row['heure'].'</td>'; }

echo '<td bgcolor="#669999" width="400px" align="left"><span style="font-weight: 400"> '.$row['titre'].' </span></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2" bgcolor="#FFFFCC" width="100%" align="left"><span style="font-weight: 400"> '.nl2br($row['texte']).' </span></td>';
echo '</tr></table><p>';

}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jona303 Messages postés 390 Statut Membre 28
 
heuu relis ton code. :D si j'ai bien compreis tu dois faire un

if ($row['datefr']=="")
comme tu l'as écris plus loin.. :)
0
t671
 
Ben non ! Si je fais comme tu me dis, c'est pareil !!!!! :((
0
jona303 Messages postés 390 Statut Membre 28 > t671
 
ha bon tu récupères datefr comme ça? sans annoncer le $row??
ben voila je savais pas.. :)
0
t671
 
j'ai trouvé ....... suppression de l'espace entre les guillemets ............. :D
0
t671
 
Ben non ! Finalement ça ne marche pas !

Voici mon code :

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

//récupère tous les enregistrements + tri ascendant des dates ($select)
$select = 'SELECT * FROM manifestations ORDER BY date ASC';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
{
//affichage des résultats
while($row = mysql_fetch_array($result))
if ($datefr == "" )
{
echo '<table width="700px" border="1">';
echo '<tr>';
echo '<th rowspan="2" bgcolor="#ffe4c4" width="70px" align="center"><a href="modif-manif.php?mode=modif&id='.$row['id'].'">Modifier</a><p><a href="suppression.php?mode=suppression&id='.$row['id'].'">Supprimer</a></th>';
echo '<td bgcolor="#669988" width="230px" align="left">'.$row['datefr'].' '.$row['heure'].'</td>';
echo '<td bgcolor="#669999" width="400px" align="left"><span style="font-weight: 400"> '.$row['titre'].' </span></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2" bgcolor="#FFFFCC" width="100%" align="left"><span style="font-weight: 400"> '.nl2br($row['texte']).' </span></td>';
echo '</tr></table><p>';
}
else
{
echo '<table width="700px" border="1">';
echo '<tr>';
echo '<th rowspan="2" bgcolor="#ffe4c4" width="70px" align="center"><a href="modif-manif.php?mode=modif&id='.$row['id'].'">Modifier</a><p>';
echo '<td bgcolor="#669988" width="230px" align="left">Le '.$row['datefr'].' à '.$row['heure'].'</td>';
echo '<td bgcolor="#669999" width="400px" align="left"><span style="font-weight: 400"> '.$row['titre'].' </span></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2" bgcolor="#FFFFCC" width="100%" align="left"><span style="font-weight: 400"> '.nl2br($row['texte']).' </span></td>';
echo '</tr></table><p>';

}
}

Là, le "else" n'est pas éxécuté.
Si datefr est vide, le champs est affiché vide.
Et si il y a un enregistrement, il s'affiche, mais le "Le" et "à" de "Le '.$row['datefr'].' à '.$row['heure'].'" ne s'affichent pas.
Et moi je suis un peu perdu :((
0
jona303 Messages postés 390 Statut Membre 28
 
résumons,

le else s'execute lorsque datefr n'est pas vide.

si oui,
- pq avoir affiché $row['datefr'] dans le premier if.
je pense que ton probleme vient de la,.. il ne va probablement jamais dans le else.
est tu certain que tu ne dois pas faire if ($row['datefr']="") ?
0
t671
 
Le "else" n'est jamais éxécuté.

J'ai modifié le if en if (empty($row['$datefr'])).
Si datefr est vide, le champs est affiché vide.
Et si il y a un enregistrement, il s'affiche, mais le "Le" et "à" de "Le '.$row['datefr'].' à '.$row['heure'].'" ne s'affichent pas. Donc, le else n'est pas éxécuté.
Et moi je suis un peu perdu ........
0
jona303 Messages postés 390 Statut Membre 28
 
je sais pas trop comme ça,.. essaye de faire des echos, pour voir ce qu'il se passe
0