[php] Problème de comparaison de date

Fermé
steph70 - 29 juil. 2008 à 17:21
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 - 31 juil. 2008 à 16:58
Bonjour,

J'ai mis en place sur mon site un formulaire à remplir par les personnes de la mairie pour déclarer les coupures d'eau.

J'ai mis sur mon index un lien qui renvoie sur une page qui donne les coupures prévisionnelles et je veux que la balise <blink> ne fonctionne que lorsque la date d'une coupure correspond à la date du jour.

J'ai donc mis ceci dans mon index :
<?php
$date=date("Y-m-d");
mysql_connect("localhost", "login", "mdp"); // Connexion à MySQL
mysql_select_db("db"); // Sélection de la base db
$reponse = mysql_query("SELECT Date FROM coupures"); 
while ($donnees = mysql_fetch_array($reponse) )
{
 	if ($donnees==$date)
	{
	($b="<blink>Alerte coupures d'eau</blink>");
	}
else
	{
	($b="Alerte coupures d'eau");
	}
}
mysql_close(); // Déconnexion de MySQL
?>


Et un peu plus loin :
<a href="Les_coupures.php"><?php print ($b); ?></a>


Mais même si ca ne me renvoie pas d'erreur, ca ne fonctionne pas. Mon <blink> ne clignote pas alors que si je fais simplement un
<?php
$c=1;
if ($c ==1)
      {
       $b="<blink>Alerte coupures d'eau</blink>";
      }
else
     {
      $b="Alerte coupures d'eau";
     }
?>


Donc je suppose qu'il y a un probème sur la comparaison.

Pouvez vous m'aider svp ?

Merci d'avance

Amicalement
steph70
A voir également:

8 réponses

PeterPeterPeter Messages postés 202 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 22 juin 2010 30
29 juil. 2008 à 17:41
while ($donnees = mysql_fetch_array($reponse) )
{
 	if ($donnees==$date)


J'ai juste vu ça pas cherché plus loin, déjà là tu as un gros problème.

mysql_fetch_array() renvoie un tableau, donc tu compares une variable à un tableau ce qui ne marchera pas.

normalement tu dois avoir un truc du genre :

if ($donnees['lenomdetadonneedanslatable'] == $date)
0
Oui, sauf que c'est bien un tableau puisque même si dans requête je ne demande qu'un champs, il y en a plusieurs de rempli non ?

Amicalement
Steph70
0
PeterPeterPeter Messages postés 202 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 22 juin 2010 30
29 juil. 2008 à 19:12
print_r($donnees);


Découvre par toi même ce qu'il y a dedans :)
0
Ok, j'avais mal compris ce que tu m'avais dit.

Ca fonctionne (enfin presque)

Voici mon code
<?php
$date=date("Y-m-d");
mysql_connect("localhost", "login", mdp"); // Connexion à MySQL
mysql_select_db(ldb"); // Sélection de la base db
$reponse = mysql_query("SELECT Date FROM coupures"); 
while ($donnees = mysql_fetch_array($reponse) )
{
    if ($donnees['Date']==$date)
	{
	$b="<blink>Alerte coupures d'eau</blink>";
	}
	else
	{
	$b="Alerte coupures d'eau";
	}
}
mysql_close(); // Déconnexion de MySQL
?>


Mon seul souci est que si la table est vide, je n'ai plus accès au lien.

Merci encore et si tu as une idée quand au dernier problème ca serait super.

Amicalement
Steph70
0

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

Posez votre question
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 2
29 juil. 2008 à 21:32
SAlut,

J'ai pas tout compris ce qui ce passait ou pas et ce que tu souhaitais mais essai peut etre avec ca (si j'ai pas trop mal compris...
<?php
$date=date("Y-m-d");
mysql_connect("localhost", "login", "mdp"); // Connexion à MySQL
mysql_select_db("ldb"); // Sélection de la base db
$reponse = mysql_query("SELECT Date FROM coupures");
if($reponse != NULL)// Code si ta table contient au moins une date
{
	while ($donnees = mysql_fetch_array($reponse) )
	{
	    if ($donnees['Date']==$date)
		{
			$b="<blink>Alerte coupures d'eau</blink>";
		}
		else
		{
			$b="Alerte coupures d'eau";
		}
	}
else
{
	// Code si ta table est vide (et par conséquent ton tableau $donnees est vide)
}
mysql_close(); // Déconnexion de MySQL
?>
0
Re et merci

Tu as parfaitement bien compris ce que je souhaitais faire.

Par contre meme si ta proposition semble correcte, elle ne fonctionne pas.

Si je n'ai rien dans ma table, je n'ai plus accès a mon lien et je ne comprend pas pourquoi puisque ta suggestion me parait totalement correcte.

Voici mon code :
<?php
//Codage php pour le blink de la coupure d'eau
$date=date("Y-m-d");
mysql_connect("localhost", "login", "mdp"); // Connexion à MySQL
mysql_select_db("db"); // Sélection de la base db
$reponse = mysql_query("SELECT Date FROM coupures"); 
if($reponse!= NULL)//  Si ta table contient au moins une date
{
	while ($donnees = mysql_fetch_array($reponse) )
	{
		if ($donnees['Date']==$date)
		{
		$b="<blink>Alerte coupures d'eau</blink>";
		}
		else
		{
		$b="Alerte coupures d'eau";
		}
	}
}
else
{
	$b="Alerte coupures d'eau";
}
mysql_close(); // Déconnexion de MySQL
?>


Merci pour votre aide

Amicalement
Steph70
0
Bonjour,

Voici la solution trouvée :
<?php
mysql_connect("localhost", "login", "mdp"); // Connexion à MySQL
mysql_select_db("db"); // Sélection de la base db
$sql = "SELECT Lieux' FROM coupures WHERE Date  = CURRENT_DATE() LIMIT 1"; 
// Peu importe ce qui est SELECT-ionné (ici 'OK') puisqu'on ne s'occupera que du nombre de résultats !
// Le LIMIT 1 permet d'arrêter la requête dès qu'un résultat est trouvé puisque cela est suffisant pour le test à effectuer...
$reponse = mysql_query($sql) or die(mysql_error());
$style_du_jour = '';
if (mysql_num_rows($reponse) > 0) {
	$style_du_jour = ' style="text-decoration: blink"';
}
mysql_close(); // Déconnexion de MySQL
?>


Et dans le texte :
<a href="Les_coupures.php"<?php echo $style_du_jour; ?>>Alerte coupures d'eau</a>


Problème résolu. Merci a tous et en particulier à Heyoan qui m'a apporté la solution avec les explications.

Amicalement
Steph70
0
balou01 Messages postés 83 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 3 décembre 2014 2
31 juil. 2008 à 16:58
ta solution est encore bien plus simple et propre !!!

Mais comme je ne savais pas vraiment ce que tu voulais mettre dans le cas ou ta table contient aucun résultat...

Enfin bref tu l'a trouvé c'est le principal !!!!!

Bonne continuation !
0