> Tous les forums > Forum des Webmasters
 test champs base mysqlSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t671
  Posté le 30/01/2009 @ 11:56 
Aller en bas de la page 
Astucien

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

Publicité
Malcolm
 Posté le 30/01/2009 à 18:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

if (datefr == "")

tu parles d'une variable super globale, ou bien tu as oublié le signe dollar ?

ou encore de $row['datefr'] qui est encore une autre variable ...

encore une fois, un petit affichage des erreurs de PHP serait le bienvenu ...



Modifié par Malcolm le 30/01/2009 18:41
t671
 Posté le 30/01/2009 à 19:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai modifié mon script :

$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 (empty($row['$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 :pt1cable:

Malcolm
 Posté le 30/01/2009 à 19:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

mets cette ligne juste après le "while" :

print_r($row);

et regarde le code source généré. ça t'affichera de manière brute toutes les "rows" lues depuis MySQL.

py_rex
 Posté le 30/01/2009 à 23:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

if ($row['$datefr'] == null || $row['$datefr'] == "") devrait faire l'affaire

(le champ dans ta table peut être une ligne vide ou être restée null)

t671
 Posté le 31/01/2009 à 10:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Si je mets print_r($row); juste après le "while", voici le résultat :

Array ( [0] => 28 [id] => 28 [1] => [heure] => [2] => 0000-00-00 [date] => 0000-00-00 [3] => [datefr] => [4] => 2222222222222222222222 [titre] => 2222222222222222222222 [5] => 2222222222222222222 [texte] => 2222222222222222222 ) Array ( [0] => 35 [id] => 35 [1] => [heure] => [2] => 0000-00-00 [date] => 0000-00-00 [3] => [datefr] => [4] => 44444444444444444 [titre] => 44444444444444444 [5] => 444444444444444444 [texte] => 444444444444444444 ) Array ( [0] => 31 [id] => 31 [1] => 11h00 [heure] => 11h00 [2] => 2002-04-13 [date] => 2002-04-13 [3] => 13 avril 2002 [datefr] => 13 avril 2002 [4] => ssssssssssssssss [titre] => ssssssssssssssss [5] => ssssssssssssssssssss [texte] => ssssssssssssssssssss ) Array ( [0] => 26 [id] => 26 [1] => 15h00 [heure] => 15h00 [2] => 2009-02-01 [date] => 2009-02-01 [3] => 01 février 2009 [datefr] => 01 février 2009 [4] => 88888888888888888 [titre] => 88888888888888888 [5] => 88888888888888888888888 [texte] => 88888888888888888888888 ) Array ( [0] => 27 [id] => 27 [1] => 12h00 [heure] => 12h00 [2] => 2012-12-25 [date] => 2012-12-25 [3] => 25 décembre 2012 [datefr] => 25 décembre 2012 [4] => 1111111111111111 [titre] => 1111111111111111 [5] => 1111111111111111111 [texte] => 1111111111111111111 ) Array ( [0] => 30 [id] => 30 [1] => 16h00 [heure] => 16h00 [2] => 2012-12-25 [date] => 2012-12-25 [3] => 25 décembre 2012 [datefr] => 25 décembre 2012 [4] => rrrrrrrrrrrrrrrrrrrrr [titre] => rrrrrrrrrrrrrrrrrrrrr [5] => rrrrrrrrrrrrrrrrrrr [texte] => rrrrrrrrrrrrrrrrrrr )

Si je remplace le if par if ($row['$datefr'] == null || $row['$datefr'] == ""), mon problème reste identique au début. Quand la date est affichée, elle devrait s'afficher avec Le "date" à "heure" :

t671
 Posté le 01/02/2009 à 18:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

La solution => $tmp = trim($row['datefr']);
if(empty($tmp))

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
15,96 €24 Piles rechargeables AmazonBasics AAA 850 mAh à 15,96 €
Valable jusqu'au 25 Juillet

Amazon propose actuellement le lot de 24 piles rechargeables AmazonBasics AAA à 15,96 €. Ces piles ont une capacité de 850 mAh et sont livrés préchargées. Si vous avez besoin d'un chargeur de piles, vous pouvez vous tourner vers ce modèle.


> Voir l'offre
179,99 €Ecran 27 pouces incurvé Viewsonic VX2718 (FHD, 165 Hz, 1 ms) à 179,99 €
Valable jusqu'au 25 Juillet

Cdiscount fait une belle promotion sur l'écran 27 pouces incurvé Viewsonic VX2718 qui passe à 179,99 € alors qu'on le trouve ailleurs à partir de 200 €. Cet écran dispose d'une dalle VA Full HD  (1920x1080) à 165 Hz avec un temps de réponse de 1 ms. Il est compatible Adaptive Sync. Au niveau connectique, vous trouverez une entrée DP et deux entrées HDMI. Une très bonne affaire. 


> Voir l'offre
62,00 €Clé USB 3.1 SanDisk Extreme Go 256 Go (400 Mo/s en lecture, 240 Mo/s en écriture) à 62 €
Valable jusqu'au 25 Juillet

Amazon fait une promotion sur la clé USB 3.2 Sandisk Extreme Go 256 Go qui passe à 62  livrée gratuitement. On la trouve ailleurs à partir de 90 €. Cette clé USB 3.2 (compatible usb 3.0) est rapide puisqu'elle offre des débits jusqu'à 400 Mo/s en lecture et 240 Mo/s en écriture


> Voir l'offre

Sujets relatifs
Base de Données MySQL et test en local
Échec connection base mysql
tester un champs mysql
Considérer un champs vide mysql non null
Créer une base de donnée MySQL
update texte dans base mysql
Mysql sur le nouveau EasyPhp pas de base
rajout données ds champs mysql
Accés impossible a ma base mysql
Votre base de donnée Mysql / PostgreSQL
Plus de sujets relatifs à test champs base mysql
 > Tous les forums > Forum Forum des Webmasters