PHP MYSQL Affichage resultats selon heure et
Fermé
Petitwebmaster
-
11 déc. 2007 à 01:48
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 - 12 déc. 2007 à 14:41
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 - 12 déc. 2007 à 14:41
A voir également:
- PHP MYSQL Affichage resultats selon heure et
- Lexer resultats - Télécharger - Sport
- Resultats foot - Télécharger - Vie quotidienne
- Easy php - Télécharger - Divers Web & Internet
- Affichage double ecran - Guide
17 réponses
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
11 déc. 2007 à 14:42
11 déc. 2007 à 14:42
déjà bizarre que ta requête ne contient pas le jour. est-ce qu'il n'y a pas une fonction DateAdd dans php ?
<?
function dateadd($per,$n,$d) {
switch($per) {
case "yyyy": $n*=12;
case "m":
$d=mktime(date("H",$d),date("i",$d)
,date("s",$d),date("n",$d)+$n
,date("j",$d),date("Y",$d));
$n=0; break;
case "ww": $n*=7;
case "d": $n*=24;
case "h": $n*=60;
case "n": $n*=60;
}
return $d+$n;
}
$date2=dateadd($periode,$nombre,$date1);
?>
SELECT * FROM ".T_ANIMATEUR." WHERE date between date1 and date2
<?
function dateadd($per,$n,$d) {
switch($per) {
case "yyyy": $n*=12;
case "m":
$d=mktime(date("H",$d),date("i",$d)
,date("s",$d),date("n",$d)+$n
,date("j",$d),date("Y",$d));
$n=0; break;
case "ww": $n*=7;
case "d": $n*=24;
case "h": $n*=60;
case "n": $n*=60;
}
return $d+$n;
}
$date2=dateadd($periode,$nombre,$date1);
?>
SELECT * FROM ".T_ANIMATEUR." WHERE date between date1 and date2
J'ai essayé avec ce code, mais rien ne donne, tout est pareil,
Merci quand même pour ta réponse, c'est sympat
Quelqun aurais t'il une autre solution SVPPPP ??
Merci quand même pour ta réponse, c'est sympat
Quelqun aurais t'il une autre solution SVPPPP ??
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
11 déc. 2007 à 16:53
11 déc. 2007 à 16:53
$heure=date("G");
ceci te donne une heure en format 24 heures sans 0 dévant. je suppose que dans la base tu a un format avec 0, donc à 1 heure du mat ça donnerais (pour une comparaison texte) where '01:00' <= '1:00' and '02:00' >= '1:00'
une comparaison texte te donnerais donc le résultat que '02:00' est < '1:00' car 0 est plus petit que 1
Kes t'en panses ?
SELECT * FROM ".T_ANIMATEUR." WHERE heuredebut<='$heure' AND heurefin>='$heure'+1
ceci te donne une heure en format 24 heures sans 0 dévant. je suppose que dans la base tu a un format avec 0, donc à 1 heure du mat ça donnerais (pour une comparaison texte) where '01:00' <= '1:00' and '02:00' >= '1:00'
une comparaison texte te donnerais donc le résultat que '02:00' est < '1:00' car 0 est plus petit que 1
Kes t'en panses ?
SELECT * FROM ".T_ANIMATEUR." WHERE heuredebut<='$heure' AND heurefin>='$heure'+1
J'ai essayé manuellement, ca marche,
En ce qui concerne ma base de données, je doit mettre mon champ datedebut et datefin en quel type ?
INT, VACHAR... ?
Merci encore de ton aide
En ce qui concerne ma base de données, je doit mettre mon champ datedebut et datefin en quel type ?
INT, VACHAR... ?
Merci encore de ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
11 déc. 2007 à 17:15
11 déc. 2007 à 17:15
connais pas MySQL, normalement type datatime sinon varchar avec yyy-mm-dd hh:nn:ss
mais je dirais qu'il faudrait faire un date("H") pour une date en dd/mm/yyyy
"J'ai essayé manuellement, ca marche", c'est quoi le manuel ? debug en step-by-step ou éditer la requête et la lancer avec la date mis manuelement car il faudrait voir ce cela donne:
WHERE heuredebut<='$heure' AND heurefin>='$heure'+1
tu pourrais poster ce morceau ?
mais je dirais qu'il faudrait faire un date("H") pour une date en dd/mm/yyyy
"J'ai essayé manuellement, ca marche", c'est quoi le manuel ? debug en step-by-step ou éditer la requête et la lancer avec la date mis manuelement car il faudrait voir ce cela donne:
WHERE heuredebut<='$heure' AND heurefin>='$heure'+1
tu pourrais poster ce morceau ?
Oups, ca marche pas en fait, je me suis trompé,
dans mysql, j'ai
heuredebut varchar(255) latin1_swedish_ci Oui NULL
heurefin varchar(255) latin1_swedish_ci Oui NULL
et mon php est comme ceci
j'ai essayé aussi avec un champ INT, mais c pareil sauf que je peut pas mettre de 0 de 5 pour faire 05heure du mat
C'est trop galere à faire, il me reste que ca à faire et le site est fini. mais c une chose super importante pour la radio
<?php
$heure=date("G");
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE heuredebut<='$heure' AND heurefin>='$heure'+1 ");
if (mysql_num_rows($commaff) == 0)
echo '<div align="center"><a href="playlist.php"><img src="images/playlis.png" alt="Ecouter la Playlist de Mona FM" width="250" height="176" border="0" /></a></div>
';
while ($donnees = mysql_fetch_array($commaff))
{
$jour=date("w");
$jourbd=$donnees['jour'];
$journee = explode(",", $jourbd);
$max=45;
$chaine=$donnees['bio'];
if(strlen($chaine)>=$max)
{
$chaine=substr($chaine,0,$max);
$espace=strrpos($chaine," ");
if($espace)
$chaine=substr($chaine,0,$espace);
$chaine .= ' ...';
}
$numero=$donnees[0];
for($i=0;$i<sizeof($journee);$i++)
{
if($jour==$journee[$i]){
echo'
<table id="Tableau_01" width="252" height="175" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/encemoment_01.png" width="252" height="42" alt="" /></td>
</tr>
<tr>
<td><table width="252" height="117" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" background="images/encemoment_02.png"><div align="center">
<table width="87%" height="114" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="6%" valign="top"><table width="81" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="81" valign="top" ><div> <span ><a href="'.$donnees['url'].' "><img src="images/animateur/'.$donnees['photo1'].' " width="80" height="80" border="0" class="glossy iradius"></a></span></div></td>
</tr>
</table></td>
<td width="94%" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td><div align="left" ><strong><a href="'.$donnees['url'].'">'.stripslashes ($donnees['nomprenom']).'</a></strong><br>
<strong class="encemomentantenne">'.stripslashes ($donnees['age']).'</strong></div>
<em>de '.stripslashes ($donnees['heuredebut']).'h à '.$donnees['heurefin'].'h</em></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><img src="images/encemoment_03.png" width="252" height="16" alt="" /></td>
</tr>
</table>
';
}
}
}
?>
dans mysql, j'ai
heuredebut varchar(255) latin1_swedish_ci Oui NULL
heurefin varchar(255) latin1_swedish_ci Oui NULL
et mon php est comme ceci
j'ai essayé aussi avec un champ INT, mais c pareil sauf que je peut pas mettre de 0 de 5 pour faire 05heure du mat
C'est trop galere à faire, il me reste que ca à faire et le site est fini. mais c une chose super importante pour la radio
<?php
$heure=date("G");
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE heuredebut<='$heure' AND heurefin>='$heure'+1 ");
if (mysql_num_rows($commaff) == 0)
echo '<div align="center"><a href="playlist.php"><img src="images/playlis.png" alt="Ecouter la Playlist de Mona FM" width="250" height="176" border="0" /></a></div>
';
while ($donnees = mysql_fetch_array($commaff))
{
$jour=date("w");
$jourbd=$donnees['jour'];
$journee = explode(",", $jourbd);
$max=45;
$chaine=$donnees['bio'];
if(strlen($chaine)>=$max)
{
$chaine=substr($chaine,0,$max);
$espace=strrpos($chaine," ");
if($espace)
$chaine=substr($chaine,0,$espace);
$chaine .= ' ...';
}
$numero=$donnees[0];
for($i=0;$i<sizeof($journee);$i++)
{
if($jour==$journee[$i]){
echo'
<table id="Tableau_01" width="252" height="175" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/encemoment_01.png" width="252" height="42" alt="" /></td>
</tr>
<tr>
<td><table width="252" height="117" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" background="images/encemoment_02.png"><div align="center">
<table width="87%" height="114" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="6%" valign="top"><table width="81" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="81" valign="top" ><div> <span ><a href="'.$donnees['url'].' "><img src="images/animateur/'.$donnees['photo1'].' " width="80" height="80" border="0" class="glossy iradius"></a></span></div></td>
</tr>
</table></td>
<td width="94%" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td><div align="left" ><strong><a href="'.$donnees['url'].'">'.stripslashes ($donnees['nomprenom']).'</a></strong><br>
<strong class="encemomentantenne">'.stripslashes ($donnees['age']).'</strong></div>
<em>de '.stripslashes ($donnees['heuredebut']).'h à '.$donnees['heurefin'].'h</em></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><img src="images/encemoment_03.png" width="252" height="16" alt="" /></td>
</tr>
</table>
';
}
}
}
?>
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
11 déc. 2007 à 17:55
11 déc. 2007 à 17:55
stp un example de "heuredebut" et "heurefin"
et un ou heuredebut<='$heure' AND heurefin>='$heure'+1 " ont été remplacé par les valeurs correspondantes
"SELECT * FROM ".T_ANIMATEUR." WHERE heuredebut<='$heure' AND heurefin>='$heure'+1 "
==>
par ex
"SELECT * FROM ".T_ANIMATEUR." WHERE '2007-12-11 01:00'<='1:00:00'AND '2007-12-11 02:00:00' >= '1:00:00'+1 "
et un ou heuredebut<='$heure' AND heurefin>='$heure'+1 " ont été remplacé par les valeurs correspondantes
"SELECT * FROM ".T_ANIMATEUR." WHERE heuredebut<='$heure' AND heurefin>='$heure'+1 "
==>
par ex
"SELECT * FROM ".T_ANIMATEUR." WHERE '2007-12-11 01:00'<='1:00:00'AND '2007-12-11 02:00:00' >= '1:00:00'+1 "
$heure=date("G");
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE 23>= $heure && $heure< 05");
Mon msn est wecords (at) hotmail.fr
Merci beaucoup
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE 23>= $heure && $heure< 05");
Mon msn est wecords (at) hotmail.fr
Merci beaucoup
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
11 déc. 2007 à 18:11
11 déc. 2007 à 18:11
donc à 1 heure de mat
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE 23>= 1 && 1 < 05");
ça te viens :)
23>= 1 aietch
faut pas faire comme ça, il faut comparer de dates entières rien à faire. ceci ne marchera jamais
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE 23>= 1 && 1 < 05");
ça te viens :)
23>= 1 aietch
faut pas faire comme ça, il faut comparer de dates entières rien à faire. ceci ne marchera jamais
Non, je comprend pas
Pourrais tu me contacter par MSN, stp,
Je doi imperativement finir le site dans 3 joursn c urgent
Pourrais tu me contacter par MSN, stp,
Je doi imperativement finir le site dans 3 joursn c urgent
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
11 déc. 2007 à 18:48
11 déc. 2007 à 18:48
A une heure du matin
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE 23>= 1 && 1 < 05");
---------------------------------------------------------------------------------------------------^
depuis quand 23 est plus grand que 1
à demain
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE 23>= 1 && 1 < 05");
---------------------------------------------------------------------------------------------------^
depuis quand 23 est plus grand que 1
à demain
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
12 déc. 2007 à 11:23
12 déc. 2007 à 11:23
Dans ce cas je te conseille d'apprendre un peu le SQL. Et je me repète peut-être mais il faut pas comparer seulement les heures, il faut comparer des dates entières. Ca sert à rien de vouloir l'essayer autrement.
Encore une fois il faut écrire le SQL comme ça :
SELECT * FROM ".T_ANIMATEUR." WHERE date BETWEEN date1 and date1 + 1 heure
utilise DateAdd pour resoudre "date1 + 1 heure"
et arrètes d'utiliser $heure = date("Q"), c'est $heure = date("H")
Puis, je ne sais toujours pas que contient le champ heuredebut/heurefin. Tu dis que c'est une date mais tu ne montre qu'un chifre là. Je ne peut pas croire ça. De même que date("Q") te fourni un chiffre au lieu d'une heure (datetime)
Encore une fois il faut écrire le SQL comme ça :
SELECT * FROM ".T_ANIMATEUR." WHERE date BETWEEN date1 and date1 + 1 heure
utilise DateAdd pour resoudre "date1 + 1 heure"
et arrètes d'utiliser $heure = date("Q"), c'est $heure = date("H")
Puis, je ne sais toujours pas que contient le champ heuredebut/heurefin. Tu dis que c'est une date mais tu ne montre qu'un chifre là. Je ne peut pas croire ça. De même que date("Q") te fourni un chiffre au lieu d'une heure (datetime)
J'ai fait comme ceci
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE ((heuredebut < heurefin) and heuredebut <= '$heure' and heurefin >='$heure') or (heuredebut > heurefin and ($heure >= heuredebut or $heure <= heurefin)) ");
Ca marche de 20h à 05h sans probleme. le seul sousis, c'est que si j'ai un animateur de 12hà15h et un autre de 15h à 18h
Il affichera les deux animateur de 15h à 15h59
Comment y remédier ?
le champ heuredébut en INT contient 1 ou deux chiffre = 5 ou 14 / heure
$commaff= mysql_query("SELECT * FROM ".T_ANIMATEUR." WHERE ((heuredebut < heurefin) and heuredebut <= '$heure' and heurefin >='$heure') or (heuredebut > heurefin and ($heure >= heuredebut or $heure <= heurefin)) ");
Ca marche de 20h à 05h sans probleme. le seul sousis, c'est que si j'ai un animateur de 12hà15h et un autre de 15h à 18h
Il affichera les deux animateur de 15h à 15h59
Comment y remédier ?
le champ heuredébut en INT contient 1 ou deux chiffre = 5 ou 14 / heure
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
12 déc. 2007 à 13:52
12 déc. 2007 à 13:52
tu es un cas sans espoir :(
Je ne comprend pas ce que tu ve me dire par ca ?
______________________
Dans ce cas je te conseille d'apprendre un peu le SQL. Et je me repète peut-être mais il faut pas comparer seulement les heures, il faut comparer des dates entières. Ca sert à rien de vouloir l'essayer autrement.
Encore une fois il faut écrire le SQL comme ça :
SELECT * FROM ".T_ANIMATEUR." WHERE date BETWEEN date1 and date1 + 1 heure
utilise DateAdd pour resoudre "date1 + 1 heure"
et arrètes d'utiliser $heure = date("Q"), c'est $heure = date("H")
Puis, je ne sais toujours pas que contient le champ heuredebut/heurefin. Tu dis que c'est une date mais tu ne montre qu'un chifre là. Je ne peut pas croire ça. De même que date("Q") te fourni un chiffre au lieu d'une heure (datetime)211 message(s) posté(s) depuis le mercredi 21 novembre 2007
_______________________
______________________
Dans ce cas je te conseille d'apprendre un peu le SQL. Et je me repète peut-être mais il faut pas comparer seulement les heures, il faut comparer des dates entières. Ca sert à rien de vouloir l'essayer autrement.
Encore une fois il faut écrire le SQL comme ça :
SELECT * FROM ".T_ANIMATEUR." WHERE date BETWEEN date1 and date1 + 1 heure
utilise DateAdd pour resoudre "date1 + 1 heure"
et arrètes d'utiliser $heure = date("Q"), c'est $heure = date("H")
Puis, je ne sais toujours pas que contient le champ heuredebut/heurefin. Tu dis que c'est une date mais tu ne montre qu'un chifre là. Je ne peut pas croire ça. De même que date("Q") te fourni un chiffre au lieu d'une heure (datetime)211 message(s) posté(s) depuis le mercredi 21 novembre 2007
_______________________
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
12 déc. 2007 à 14:41
12 déc. 2007 à 14:41
et moi je ne sais pas comment te l'éxpliquer si tu n'as pas un minimum de connaissances de ce que tu es en train de faire