Test champs base mysql - PHP - Programmation
Marsh Posté le 30-01-2009 à 14:45:15
l'espace entre tes guillemets compte...
edit:ortho
Marsh Posté le 30-01-2009 à 15:52:04
t671 a écrit : Merci beaucoup ........ |
essaye avec la fonction php empty .......................................
Marsh Posté le 30-01-2009 à 16:07:45
jagstang a écrit : l'espace entre tes guillemets compte... |
Ben finalement, après des essais, la fonction else n'est plus éxécuté ..... !!!!????
Marsh Posté le 30-01-2009 à 16:11:05
kao98 a écrit : |
Même résultat avec empty ........... la fonction else n'est pas éxécuté !!!!!
Marsh Posté le 30-01-2009 à 16:14:56
Mais, c'est quoi ce "$datefr" ? C'est pas plutôt "$row['datefr']" ?
Et il y a quoi dedans !?
Et arrête avec tes putains de ..................... et autre poncturations à rallonge inutilles !!!!!!!!!!!!!!!
Marsh Posté le 30-01-2009 à 16:50:15
OK !
"datefr" est un champs de ma base qui peut éventuellement être vide. Si il est vide, j'affiche pas, sinon j'affiche '.$row['datefr'].' et '.$row['heure'].' :
Code :
|
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 lmoi je suis un peu perdu
Marsh Posté le 30-01-2009 à 16:53:11
Tu as vu mon message concernant la fonction php empty ?
Et, ton test est faux !
Tu test "$datefr" ! Il faut tester $row['datefr'] !
Marsh Posté le 30-01-2009 à 17:11:46
kao98 a écrit : Tu as vu mon message concernant la fonction php empty ? |
Avec empty => if (empty($row['$datefr'])) , le else n'est pas éxécuté.
C'est à dire que rien n'est affiché si le champs est vide, et si il n'est pas vide, les "Le" et "à" ne s'affichent pas.
Marsh Posté le 30-01-2009 à 17:19:22
Manque pas une accolade entre ton while et ton if !?
Ca donne quoi echo(empty($row['datefr'])); ?
Marsh Posté le 30-01-2009 à 19:10:08
kao98 a écrit : Manque pas une accolade entre ton while et ton if !? |
Il ne doit pas y avoir d'accolade entre le while et le if. Du moins je pense pas !
Le echo(empty($row['datefr'])); donne comme réponse un tableau vide
Marsh Posté le 30-01-2009 à 23:58:12
t671 a écrit : |
Ben, bien sûr que si !
Code :
|
Marsh Posté le 30-01-2009 à 23:59:14
t671 a écrit : |
Je ne te demande pas de me proposer ce que c'es sencé faire ! Mais de taper ça dans ton script et de quoter ici le résultat !
Marsh Posté le 31-01-2009 à 11:13:48
Bonjour kao98,
Si je mets une accolade après le while, ça ne change rien à mon résultat.
Si je mets echo(empty($row['datefr'])); sans le if, j'ai une page blanche. Et avec le if, uniquement çà :
Marsh Posté le 31-01-2009 à 11:39:14
Tout en haut de ton script ajoute :
Code : |
Que s'affiche t'il ?
Et ensuite, si tu fais
Code : |
Que s'affiche-t-il ?
Marsh Posté le 31-01-2009 à 12:17:06
Le error_reporting(E_ALL); ne change rien. Pas d'affichage supplémentaire !
Le echo (int) empty($row['datefr']); affiche un zero au dessus de chaque encadré :
Marsh Posté le 31-01-2009 à 12:24:06
Tu es sûr que error_reporting(E_ALL) ne change rien ?
Pourtant tu testes $date_fr qui n'existe pas dans ton IF au lieu de tester $row['date_fr'].
Marsh Posté le 31-01-2009 à 12:35:47
Le error_reporting(E_ALL) je l'ai mis juste après la connexion à la base, sans rien toucher d'autre, et aucune modification dans le résultat. C'est à dire que le tableau s'affiche, si les champs sont vide, les cases sont vides, mais la date n'affiche pas "Le" et "à" ! Donc le "else" n'est pas éxécuté.
Dans la première partie du if, si je met '.$row['datefr'].'9999 '.$row['heure'].' à la place de '.$row['datefr'].' '.$row['heure'].', mes 9999 s'affichent partout .....
Marsh Posté le 31-01-2009 à 12:43:36
ReplyMarsh Posté le 31-01-2009 à 17:00:00
met un
echo $row['datefr'];
avant ton if.
Le empty($row['datefr']) qui affiche 0 partout indique que $row['datefr'] est vide partout.
Et laisse l'accolade après ton while surtout !
En clair, met ça :
Code :
|
Marsh Posté le 31-01-2009 à 17:23:42
J'ai fait ce que tu m'as dit, et voici le résultat :
pour le code :
Code :
|
Ce qui prouve que le script ne passe jamais dans le "else".
Marsh Posté le 31-01-2009 à 17:38:12
Putain mais t'es grave !
C'est pas :
$row['$datefr'] !
c'est
$row['datefr'] !!!
Relis ton code quand même un peu !!!
Marsh Posté le 31-01-2009 à 17:44:14
kao98 a écrit : Putain mais t'es grave ! |
Exact ! Meaculpa ! à force, je sais plus où j'habite ...
Par contre, maintenant le "else" est éxécuté à chaque fois. C'est à dire que pour les champs qui sont vides, ça affiche " Le à : "
Marsh Posté le 31-01-2009 à 18:44:17
j'ai l'impression qu'il y a un espace quand il n'y a pas de date.
Essaye comme ça :
if ( empty(trim($row['datefr'])) )
Marsh Posté le 01-02-2009 à 12:07:19
kao98 a écrit : j'ai l'impression qu'il y a un espace quand il n'y a pas de date. |
Bonjour kao98,
Effectivement, j'avais pensé que le champs n'était pas vide, mais "blanc" !
J'ai testé ta commande, et j'ai en réponse ceci : Fatal error: Can't use function return value in write context
Marsh Posté le 01-02-2009 à 14:42:52
empty doit tester une variable et non un retour de fonction, fait d'abord le trim, affecte sa valeur à la variable, puis fais le empty sur cette nouvelle variable "trimée".
Marsh Posté le 01-02-2009 à 17:30:56
yellu a écrit : empty doit tester une variable et non un retour de fonction, fait d'abord le trim, affecte sa valeur à la variable, puis fais le empty sur cette nouvelle variable "trimée". |
Si j'écris ceci : $datefr=trim($datefr);
if (empty($row['datefr']))
=> Pas le if mais le else est éxécuté.
Si j'écris ceci : $datefr2=trim($datefr);
if (empty($row['datefr2']))
=> Le else n'est jamais éxécuté.
Marsh Posté le 01-02-2009 à 17:52:04
oulala tu m'as l'air de bien nager entre les variables et les index de tableaux :s
Remplace :
if ( empty(trim($row['datefr'])) )
Par :
$tmp = trim($row['datefr']);
if(empty($tmp))
Marsh Posté le 01-02-2009 à 18:00:55
yellu a écrit : oulala tu m'as l'air de bien nager entre les variables et les index de tableaux :s |
Je te remercie beaucoup ! Ca maaaaaaaaaaaaaarche.
Marsh Posté le 04-09-2009 à 23:23:58
ta pas oublier d'incrementer ta variable pour while?
Code :
|
Marsh Posté le 30-01-2009 à 14:24:28
Bonjour,
Je pense que c'est tout bête, mais je bloque pour tester un champs d'une base mysql !
Si le champs "datefr" de la table manifestations est vide alors ........ , sinon .......
Là, la condition else est automatiquement éxécuté alors qu'elle ne le devrait pas !!!!!
Merci pour votre aide .....