Page 1 sur 2
Probleme de conversion
Posté : 06 oct. 2006, 14:51
par Photographiquement Vôtre
Bonjour,
Quand je fais ce SELECT, ma date (format datetime) CommandeO_timestamp est toujours transformée en 1970/01/01
Code : Tout sélectionner
$sql = "SELECT COUNT(commandeId) FROM tblcommande WHERE ".date('Y/m/d',commandeO_timestamp)."= $date_arrivee ";
A quoi cela est du
Merci
Posté : 06 oct. 2006, 15:56
par Vikchill
As-tu fait un écho de ta variable $sql pour contrôler ce qu'il y avait dedans?
Posté : 06 oct. 2006, 15:59
par Photographiquement Vôtre
Oui
WHERE 1970/01/01 = 2006/01/01
Posté : 06 oct. 2006, 16:00
par zeus
si je ne m'abuse, cette partie de la chaine est en PHP
date('Y/m/d',commandeO_timestamp)
Or, commandeO_timestamp correspond à quoi ???
a mon avis, il manque un $ devant la variable

Posté : 06 oct. 2006, 16:05
par Photographiquement Vôtre
Non commandeO_timestamp est une donnée de ma table tblcommande
Posté : 06 oct. 2006, 16:35
par Vikchill
Tu t'embrouilles dans ton SQL et ton php.
Ta requête marche, puisque tu as ça qui arrive à MySQL:
Code : Tout sélectionner
SELECT COUNT(commandeId) FROM tblcommande WHERE 1970/01/01 = 2006/01/01
Effectivement ça ne peut que répondre 0.
Dans ton php, tu mets
sauf que php ne connais pas les données de ta table, il ne connait pas
commandeO_timestamp, il te renvoie donc le premier jour de l'ère Unix.
Posté : 06 oct. 2006, 16:38
par Photographiquement Vôtre
Dans ce cas que dois je mettre à la place de commandeO_timestamp !!! pour qu'il le reconnaisse
Posté : 06 oct. 2006, 17:07
par Babeuf
Tu dois faire une requete sql qui te renvoie ton commandeO_timestamp puis le placer dans une variable PHP et travailler avec cette variable
Code : Tout sélectionner
Un truc du genre:
$commandeO_timestamp = $res['commandeO_timestamp'];
et du coup tu peux faire :
ou alors j'ai compris le problème de travers

Posté : 06 oct. 2006, 17:09
par Vikchill
Ou bien plus simplement:
Code : Tout sélectionner
$sql = "SELECT COUNT(commandeId) FROM tblcommande WHERE date(commandeO_timestamp)= '".$date_arrivee."'" ;
non?
Posté : 06 oct. 2006, 17:25
par Photographiquement Vôtre
Non Babeuf ce que je veux c'est compter le nombre de commandes par une requête SQL.
Désolé Vickchill mais cela ne marche pas
Posté : 06 oct. 2006, 17:26
par Vikchill
Ce serait bien que tu participes un peu, par exemple en donnant la valeur de ta variable $sql et l'erreur, ou le résultat obtenu. N'ayant pas de moyen de tester, je fais ça un peu à l'aveuglette

Posté : 06 oct. 2006, 17:36
par Photographiquement Vôtre
Voici mon code : $
date_depart= date("2006-10-01");
$a_date = explode("-", $date_depart);
$annee = $a_date[0];
$mois = $a_date[1];
$jour = $a_date[2];
$jour_test=0;
$visites = array();
$max_days = date('t', mktime(0, 0, 0, $month, 15, $year));
for( $day = 1, $i = 1; $day <= $max_days; $day++, $i++ )
{
$jour_test= $jour_test +1;
$timestamp=mktime(0,0,0,$mois,$jour_test,$annee);
$date_arrivee=date("Y/m/d",$timestamp);
Cas 1 :
$sql = "SELECT COUNT(*) FROM tblcommande WHERE date(commandeO_timestamp)= '$date_arrivee' ";
Cas 2 :
$sql = "SELECT COUNT(commandeId) FROM tblcommande WHERE " .date('Y/m/d','commandeO_timestamp')." = '$date_arrivee' ";
$result = mysql_query($sql)or exit ('Erreur SQL !'.$result.'<br>'.mysql_error());
$nb_commande = mysql_result($result,0);
echo "$nb_commande";
}
Dans les deux cas, j'obtiens 0 en nombre de commandes
Posté : 06 oct. 2006, 17:42
par Vikchill
Sauf erreur, le cas 2 ne peut pas fonctionner. Tu veux bien donner la valeur de ta variable $sql pour le cas 1?
Posté : 06 oct. 2006, 17:54
par Photographiquement Vôtre
Avec plaisir :
Code : Tout sélectionner
SELECT COUNT(*) FROM tblcommande WHERE date(commandeO_timestamp)= '2006/10/01'
Posté : 06 oct. 2006, 17:59
par Vikchill
Ah, ok essaie de mettre ça
$date_arrivee=date("Y-m-d",$timestamp);
au lieu de ça
$date_arrivee=date("Y/m/d",$timestamp);
(des '-' au lieu des '/')