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 03/02/2011, 10h25   #1
Membre du Club
 
Inscription : mai 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 97
Points : 53
Points : 53
Bonjour alors voila, je voudrais faire un formulaire ou l'utilisateur selectionne un date de debut et une date de fin. Ceci dans un historique je fais donc ca :

Code :
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
	<h2> Recherche par date : </h2>
	<form action="recherche.php" method="POST">
	Du : <SELECT name='i' Size='1'>
		<?php
			for($i=1; $i<=31;$i++)
			{	       //Lister les jours
				if ($i < 10)
				{		       //Lister les jours pour pouvoir leur ajouter un 0 devant
					echo "<OPTION>0$i<br></OPTION>";
				}
				else 
				{
					echo "<OPTION>$i<br></OPTION>";
				}
            }
			?>
		</SELECT>
		<SELECT name="d" Size="1">
		<?php
			for($d=1; $d<=12;$d++)
			{	       //Lister les mois
				if ($d < 10)
				{		       //Lister les jours pour pouvoir leur ajouter un 0 devant
					echo "<OPTION>0$d<br></OPTION>";
				}
				else 
				{
					echo "<OPTION>$d<br></OPTION>";
				}
            }
		?>
		</SELECT>
		<?php
		$date = date('Y');		 //On prend l'année en cours
 
		echo '<SELECT name="y" Size="1">';
		for ($y=$date; $y<=$date+10; $y++)
		{	       //De l'année 2000 à l'année actuelle
			echo "<OPTION><br>$y<br></OPTION>";
		}
		echo "</SELECT>";
		?>
		Au <SELECT name='i2' Size='1'>
		<?php
			for($i=1; $i<=31;$i++)
			{	       //Lister les jours
				if ($i < 10)
				{		       //Lister les jours pour pouvoir leur ajouter un 0 devant
					echo "<OPTION>0$i<br></OPTION>";
				}
				else 
				{
					echo "<OPTION>$i<br></OPTION>";
				}
            }
			?>
		</SELECT>
		<SELECT name="d2" Size="1">
		<?php
			for($d=1; $d<=12;$d++)
			{	       //Lister les mois
				if ($d < 10)
				{		       //Lister les jours pour pouvoir leur ajouter un 0 devant
					echo "<OPTION>0$d<br></OPTION>";
				}
				else 
				{
					echo "<OPTION>$d<br></OPTION>";
				}
            }
		?>
		</SELECT>
		<?php
		$date2 = date('Y');		 //On prend l'année en cours
 
		echo '<SELECT name="y2" Size="1">';
		for ($y2=$date2; $y2<=$date2+10; $y2++)
		{	       //De l'année 2000 à l'année actuelle
			echo "<OPTION><br>$y2<br></OPTION>";
		}
		echo "</SELECT>";
		?>
		<input type="submit" value="Rechercher"><br/>
		</form>
	<a href="index.php"> Retour </a></center>
	</body>
</html>
J'ai bien mes listes deroulantes et dans ma bdd j'ai une date qui est le 2011-02-03

je test alors ma recherche pour afficher cet evenement voici le code suivant :

Code :
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
<html>
	<head>
		<title> Remises </title>
		<link rel="stylesheet" type="text/css" href="style.css">
	</head>
	<body style="background-color:lightblue">
	<center>
	<?php
 
	if (isset ($_POST['d']))
	{
		$d=$_POST['d'];
	}
	else
	{
		$d="";
	}
 
	if (isset ($_POST['i']))
	{
		$i=$_POST['i'];
	}
	else
	{
		$i="";
	}
 
	if (isset ($_POST['y']))
	{
		$y=$_POST['y'];
	}
	else
	{
		$y="";
	}
 
	if (isset ($_POST['d2']))
	{
		$d2=$_POST['d2'];
	}
	else
	{
		$d2="";
	}
 
	if (isset ($_POST['i2']))
	{
		$i2=$_POST['i2'];
	}
	else
	{
		$i2="";
	}
 
	if (isset ($_POST['y2']))
	{
		$y2=$_POST['y2'];
	}
	else
	{
		$y2="";
	}
 
	$debut= $y."-".$d."-".$i;
	$fin= $y2."-".$d2."-".$i2;
	$debut=date($debut);
	$fin=date($fin);
	echo $debut;
	echo $fin;
 
	$link = mysql_connect ('localhost', 'root', '');
	mysql_select_db('anomalies', $link);
 
	$sql = 'SELECT id, ean, design, rayon, pvc, tel, brii, tract, valide FROM anomalies WHERE ojd BETWEEN \'$debut\' AND \'$fin\' ORDER BY id DESC;';
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
	?>
	</body>
</html>
mais rien ne s'affiche, je tente alors un echo $debut et un echo $fin et ils s'affichent correctement. que faire...?

Petit details en plus, j'ai modifié un peu mon script et maintenant ca s'affiche , enfin ca affiche tout sauf ce que je veux ^^
nightfall59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h48   #2
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Bonjour,

As-tu déjà essayer ta requête dans un requêteur SQL ?
Ensuite peux tu faire un juste après l'écriture de ta requête :
Code :
$sql = 'SELECT id, ean, design, rayon, pvc, tel, brii, tract, valide FROM anomalies WHERE ojd BETWEEN \'$debut\' AND \'$fin\' ORDER BY id DESC;';
ce qui permettra d'y voir plus clair sur ta requête.

Cordialement.
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h50   #3
Membre du Club
 
Inscription : mai 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 97
Points : 53
Points : 53
apres l'echo il m'affiche la requete ^^

SELECT id, ean, design, rayon, pvc, tel, brii, tract, valide FROM anomalies WHERE ojd BETWEEN 'date($debut)' AND 'date($fin)' ORDER BY id DESC;
nightfall59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h54   #4
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Ok normal que cela ne fonctionne pas vu que les variable $debut et $fin ne corresponde pas à des valeurs.

Pourquoi utilise-tu la fonction date ?
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h54   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
La fonction date() ne s'utilise pas comme ça, consulte la documentation.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h56   #6
Membre du Club
 
Inscription : mai 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 97
Points : 53
Points : 53
parceque j'ai 6 chaines $d,$i,$y et $d2,$i2,$y2

et je veux les mettre en format date (format dans ma bdd)

et enfin rechercher les dates comprises entre les variables
nightfall59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 11h01   #7
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
J'ai du mal à comprendre, tu forme déjà la date en faisant :
Code :
$debut= $y."-".$d."-".$i;
alors pourquoi utiliser la fonction date() ?
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 11h03   #8
Membre du Club
 
Inscription : mai 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 97
Points : 53
Points : 53
En effet une erreur dans la formation de la date j'ai enlevé les lignes qui t'embetent loic^^

et j'ai inséré le contenu a la place de la variable dans date.

ca fait certe plus propore et c'est plus fonctionnel aussi merci de votre aide =)
nightfall59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 11h06   #9
Débutant
 
Inscription : juin 2007
Messages : 1 550
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 550
Points : 299
Points : 299
Cool si j'ai pu t'aider à résoudre ton problème.

Peux-tu s'il te plais, fournir le code pour montrer à ceux que cela pourrais aidé à l'avenir ?

Cordialement.
loic20h28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 13h06   #10
Membre du Club
 
Inscription : mai 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 97
Points : 53
Points : 53
en gros la requete avec les variables ca donne ca :

Code :
1
2
3
4
5
6
7
8
9
 
$debut=date($y."-".$d."-".$i);
	$fin=date($y2."-".$d2."-".$i2);
 
	$link = mysql_connect ('localhost', 'root', '');
	mysql_select_db('anomalies', $link);
 
	$sql = "SELECT id, ean, design, rayon, pvc, tel, brii, tract, valide FROM anomalies WHERE ojd BETWEEN '$debut' AND '$fin' ORDER BY id DESC;";
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
nightfall59 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 05h51.


 
 
 
 
Partenaires

Hébergement Web