Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2011, 12h18   #1
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Par défaut Je rame à mort pour une bêtise.

Bonjour à tous,

Ben oui je rame un peu je dois dire pour un problème de date dans mon script.

Je n'arrive pas à faire afficher la condition suivante correctement:

Si datejour = daterando alors affiche rando sinon affiche test

Pour résumé j'ai un calendrier avec 20 randos sur l'année et lorsque le script détecte que la date du jour correspond à la date de la rando se trouvant dans ma BDD il affiche la rando dans un Input texte


Si je fais comme dans mon exemple, j'ai une erreur "Undefined variable: daterando "

Merci pour votre aide.


Voici mon script:


Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<html>
<head>
<link rel="SHORTCUT ICON" href="http://www.gghf.be/images/favico.gif">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
 
<div id="select">
<?php
$datejour = date("Y-m-d");
 
 
 
// ON se connecte à MySQL
$db = mysql_connect('localhost', 'blabla', 'blabla');
 
// ON sélectionne la base
mysql_select_db('test',$db);
 
// ON crée la requête SQL
$sql = "SELECT date,rando FROM gghf_select WHERE date = '$datejour'  ";
 
// ON envoie la requête
$req = mysql_query($sql) OR die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
 
// ON fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
    // ON affiche les informations de l'enregistrement en cours
$rand = $data['rando'];
$daterando = $data['date'] ;
	}
 
 
// on ferme la connexion à mysql
mysql_close();
 
if ($datejour == $daterando )
					{
					echo 'Aujourd\'hui c\'est la rando de:';
					echo '<br/>';
					echo '<p></p>';
				  	echo '<FORM ACTION="eid.php" METHOD="POST">' ;
					echo '<input type="text" value=" '.$rand.' " name="rando">';
					echo '<INPUT TYPE="submit" VALUE="Valider">';
					echo '</FORM>';
				  }
 
				  else {
					  echo 'Aujourd\'hui ce n\'est pas encore votre randonnée. Essayer donc la rando TEST';
					echo '<br/>';
					echo '<p></p>';
					  echo '<FORM ACTION="eid.php" METHOD="POST">' ;
					echo '<input type="text" value="TEST" name="rando">';
					echo '<INPUT TYPE="submit" VALUE="Valider">';
					echo '</FORM>';
				  }
 
 
?>
</div>
</body>
</html>
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 12h28   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Hello

Citation:
Si datejour = daterando alors affiche rando sinon affiche test
Se traduit par:
Code :
1
2
 
echo date($format) == $date_rando ? $date_rando : "test";


En ce qui concerne ton script, je pense que ton problème vient du formattage des date, en mysql elles sont en YYYY-MM-DD HH:II:SS donc à la ligne#11 il faut mettre:
Code :
1
2
 
$datejour = date("Y-m-d H:i:s");
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h25   #3
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Hello,

Je ne crois pas que cela vienne de ceci :

Code :
$datejour = date("Y-m-d");
car si dans ma BDD je tombe sur la date d'une rando il m'affiche bien le nom de la rando dans l'input texte qui correspond à la 1ère condition

Par contre aujourd'hui il n'y a pas de rando donc datejour est différent de daterando, il m'affiche bien la 2ème condition.

MAIS en plus il m'affiche le fameux "Undefined variable: daterando "


En résumé quand daterando est différent de datejour çà foire et il ne reconnait plus daterando.


Que faire dans ce cas ?
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h45   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Ah oui, j'avais mal regardé.
Ton problème vient du fait que si la requête ne renvoie pas de résultats, $daterando n'est jamais défini, donc une erreur survient si on l'emploi.
Pour y palier, il faut faire:
Code :
1
2
 
if (isset($daterando) && $datejour == $daterando )
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h38   #5
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 74
Points : 15
Points : 15
Par défaut Je rame à mort pour une bêtise.

Merci à toi.

Cà fonctionne bien maintenant


Heu c'est comment encore qu'on rajoute SOLVED ?
legrandse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h50   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Boutton "résolu" en bas du thread.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h50.


 
 
 
 
Partenaires

Hébergement Web