probleme de choix dans une base mysql a partir d'une date - PHP - Programmation
Marsh Posté le 01-01-2010 à 18:06:25
Il manque des quotes autour de $date.
Code :
|
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 ?
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.
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. |
nous ne sommes pas des cloches, donc jusque là ça me paraît normal
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.
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