probleme de choix dans une base mysql a partir d'une date

probleme de choix dans une base mysql a partir d'une date - PHP - Programmation

Marsh Posté le 01-01-2010 à 13:55:34    

bonjour et bonne année pour commencer
 
j'espere que la nuit n'a pas ete trop courte voici mon code
 
1   $compteur = 0 ;
2   echo '<table border=1>';
3            $SQL = 'SELECT * FROM famille where id = '.$idfamille;
4 $res = mysql_query($SQL);
5 $recupfamille = mysql_fetch_array($res);
6 echo '<tr>';
7 echo '<th colspan=2> Famille : '.$recupfamille["nom"].'</th>';
8 echo '<th>Date : '.$date.'</th>';
9 echo '</tr>';
10   $liste = 'SELECT * FROM enfant WHERE idfamille = '.$idfamille;
11   $reqenfant = mysql_query($liste);
12   while($listeenfant=mysql_fetch_array($reqenfant)) {
13 $compteur += 1;
14 ${'enfant'.$compteur}=$listeenfant["prenom"];
15 ${'idenfant'.$compteur}=$listeenfant["id"];
16 echo ${'enfant'.$compteur}.${'idenfant'.$compteur}.'<br>';
17      }
18   for ($comp=1;$comp<=$compteur;$comp++) {
19 $SQL = 'SELECT * FROM presence where idenfant = '.${'idenfant'.$comp}.' AND date(heuredepart) ='.$date;
20 $duree = mysql_query($SQL);
21 while($recupduree = mysql_fetch_array($duree)){
22  echo '<tr>';
23  echo '<th>'.${'enfant'.$comp}.'</th>';
24  echo '<th>'.$recupduree["duree"].'</th>';
25  echo '<th>'.$recupduree["type"].'</th>';
26  echo '</tr>';
27 }
28  }
29  echo '</table><br><br>';
 
j'ai un probleme pour afficher le resultat de la requete de la ligne 19. A savoir que heuredepart est un champ de type DATETIME et que $date est une chaine saisie dans un formulaire au format AAAA/MM/JJ (ex :2009/12/31). Mon tableau est vide  :(  
 
par contre si je remplace la ligne 19 par
 
$SQL = 'SELECT * FROM presence where idenfant = '.${'idenfant'.$comp}.' AND date(heuredepart) ="2009/12/31" ';
 
 
ca fonctionne  :??:  
je comprend pas  
 
merci pour votre aide

Reply

Marsh Posté le 01-01-2010 à 13:55:34   

Reply

Marsh Posté le 01-01-2010 à 18:06:25    

Il manque des quotes autour de $date.
 

Code :
  1. $SQL = 'SELECT * FROM presence where idenfant = '.${'idenfant'.$comp}.' AND date(heuredepart) =" '.$date.' " ';


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 01-01-2010 à 18:48:35    

merci a toi aideinfo
 
il ne me serais jamais venu a l'idee de mettre des quotes autour d'une variable. Surtout que pour idenfant je n'en mets pas. je pense que cela viens du fait que je compare a une date et non un int.
 
Je me trompe ?

Reply

Marsh Posté le 02-01-2010 à 13:17:41    

Pour les données numériques, ce n'est pas nécessaire, mais pour le reste, oui.
Il ne faut pas résonner côté PHP, mais côté MySQL, qui n'aura pas la variable, mais la donnée correspondante.

Message cité 1 fois
Message édité par aideinfo le 02-01-2010 à 13:18:26

---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 02-01-2010 à 22:18:25    

aideinfo a écrit :

Pour les données numériques, ce n'est pas nécessaire, mais pour le reste, oui.
Il ne faut pas résonner côté PHP, mais côté MySQL, qui n'aura pas la variable, mais la donnée correspondante.


nous ne sommes pas des cloches, donc jusque là ça me paraît normal  :pt1cable:  
 
fladnag49 > n'hésite pas, quand tu as un souci, à :
- faire un echo de la requête SQL telle qu'elle est finalisée juste avant son exécution (pour voir tout bêtement si déjà ta requête est correctement faite
- la tester dans PHPMyAdmin ou équivalent, pour voir si t'as pas un souci de concaténation en PHP
- faire un echo du mysql_error() dans ton environnement de labo pour voir l'erreur retournée.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed