cs_chevaliero
Messages postés11Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention12 octobre 2005
-
10 mai 2005 à 11:30
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
11 mai 2005 à 18:48
Bonjour,
Mon but est d'afficher des infos comprises entre deux dates.
J'ai un formulaire avec 2 champs textbox (date1 et date2 ) dans lequels je saisie les dates (au format jj/mm/yyyy):
Je souhaite afficher le résultat sur une page appelée repdate.php.
Mais j'ai toujours ce message :
Notice: Undefined variable: date1 in c:\program files\easyphp1-7\www\test\repdate.php on line 15
Notice: Undefined variable: date2 in c:\program files\easyphp1-7\www\test\repdate.php on line 15
CODE DE LA PAGE REPDATE.PHP
<?
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'TEST';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = "SELECT * FROM test WHERE date1='.$date1.' and date2='.$date2.' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'TEST';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = "SELECT * FROM test WHERE date1='".$_POST['date1']."' AND date2="'.$_POST['date2']."' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'TEST';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if (isset ($_POST['submit']) && $_POST['submit'] === 'envoi') {
if (isset ($_POST['date1']) && isset ($_POST['date2'])) {
$select = "SELECT * FROM test WHERE date1='".$_POST['date1']."' AND date2="'.$_POST['date2']."' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
cs_chevaliero
Messages postés11Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention12 octobre 2005 10 mai 2005 à 12:35
Bonjour Malalam,
merci pour ta réponse rapidemais je sollicite encore ton aide.
J'ai modifié ma page de formulaire, ainsi que la page repdate.php
J'ai modifié uniquement sur ton code (voir ci-dessous en rouge) la position des guillements
Mais j'obtiens la réponse suivante :
Parse error: parse error, unexpected $end in c:\program files\easyphp1-7\www\test\repdate.php on line 24
voici le code:
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'TEST';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if (isset ($_POST['submit']) && $_POST['submit'] === 'envoi') {
if (isset ($_POST['date1']) && isset ($_POST['date2'])) {
$select = "SELECT * FROM test WHERE date1='".$_POST['date1']."' AND date2='".$_POST['date2']."' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
cs_chevaliero
Messages postés11Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention12 octobre 2005 10 mai 2005 à 13:17
Re Bonjour Malalam,
j'ai rajouté 2 acolades à la fin du code et unexpected $end error a disparu.
Suite à un test sur une période où j'ai placé 2 évènements.
Effectivement les variables de dates sont passées dans l'url.
Cependant je n'ai rien qui s'affiche sur ma page repdate.php
Peux-tu m'aider à nouveau
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 10 mai 2005 à 13:20
Tu as oublie les accolades que j'avais rajoutees ;-) Regarde bien (J'ai indente cette fois) :
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'TEST';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if (isset ($_POST['submit']) && $_POST['submit'] === 'envoi') {
if (isset ($_POST['date1']) && isset ($_POST['date2'])) {
$select = "SELECT * FROM test WHERE date1='".$_POST['date1']."' AND date2='".$_POST['date2']."' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
while($enreg = mysql_fetch_array($result)) {
echo ''.$enreg['date1'].' - '.$enreg['titre'].'
';
}
}
}
?>
Bon l'indentation de mon editeur passe mal ici lol. Enfin regarde avant le ?> j'ai mis 3 accolades, tu en avais garde une seule.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 10 mai 2005 à 13:24
A mon avis, il ne trouve rien dans ta base correspondant a ta requete (evite les SELECT * au fait, il vaut mieux nommer TOUS les champs requis, plutot).
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 10 mai 2005 à 13:56
Affiche ton $total. Tu as quoi ? 0 ?
Ca veut bien dire que ta requete ne va pas chercher les champs ou les 2 dates sont egales aux deux dates passees dans ton formulaire.
Affiche tes $_POST pour voir ce que tu obtiens, et compare avec ce que tu as dans ta table.
cs_chevaliero
Messages postés11Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention12 octobre 2005 10 mai 2005 à 14:40
Re,
J'affiche mon $total
Résultat : 0
Les variables avec le POST ne sont pas transmises dans dans l'url.
En modifiant
<form name="form" action="repdate.php" method="post" >
par
<form name="form" action="repdate.php">
j'obtiens le passage de variables suivant:
repdate.php?date1=01%2F05%2F2005&date2=30%2F05%2F2005&submit=envoi
Mais rien ne s'affiche car ce n'est plus un POST donc le code de la page repdate.php n'est plus bon je pense.
cs_chevaliero
Messages postés11Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention12 octobre 2005 11 mai 2005 à 12:18
Re et merci à vous de me répondre
Voila le POST ne fonctionne pas, je préfère le GET
j'ai modifié un peu le code de repdate.php et là j'obitens tous les enregistrements mais par sur l'intervalle de dates (date1, date2) passé en variable.
Voici le code:
<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'TEST;
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = "SELECT * FROM test WHERE date1 > '$_GET[date1]' and date2 < '$_GET[date2]' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
while($enreg = mysql_fetch_array($result)) {
echo ''.$enreg['date1'].' - '.$enreg['titre'].'