Date mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Date mysql

Re: Date mysql

par binouz » 25 mai 2010, 10:52

ma fonction getLine c'est ca :

Code : Tout sélectionner

function getLine($query) { $result = $this->query($query); if ($result != false) { $this->nbLignes = $result->rowCount(); return $result->fetch(PDO::FETCH_ASSOC); } else { return false; } }

Re: Date mysql

par stealth35 » 25 mai 2010, 10:45

et pour le getLine c'est PDOmerci encore
non, c'est avec l'exception, je doute que ca marche aussi, getLine() c'est pour récupérer la ligne de l'erreur.
A tu bien fais ta gestion des erreurs PDO, travailles tu en niveau d'erreur E_ALL | E_STRICT, as tu essayé ta requête sous phpmyadmin par exemple ?

Re: Date mysql

par binouz » 25 mai 2010, 10:43

Ok c'est bon j'ai trouvé.

je suis vraiment un gros naze ! :oops:


Pour info le problème venait de mon formatage de date, il fallait faire :

Code : Tout sélectionner

$dateformatedFin = $datetime2->format("Ymd");
et NON

Code : Tout sélectionner

$dateformatedFin = $datetime2->format("Y-m-d");
Merci pour votre aide

Re: Date mysql

par binouz » 25 mai 2010, 10:31

Bonjour,

merci pour ta réponse.
En fait pour préciser :
cette ligne fonctionne sans probleme

Code : Tout sélectionner

$row = $dbh->getLine("SELECT contrat_id FROM tab_contrats WHERE contrat_publissimo_num=".$dbh->quote($tabXMLCommercial['code_publissimo'])." AND contrat_client_id=".$numZipSitimmo);
je récupère bien la ligne que je recherche.
C'est quand j'ajoute les conditions sur les dates (début et fin) qu'il ne retrouve pas l'enregistrement.
exemple :

Code : Tout sélectionner

$row = $dbh->getLine("SELECT contrat_id FROM tab_contrats WHERE contrat_publissimo_num=".$dbh->quote($tabXMLCommercial['code_publissimo'])." AND contrat_date_debut=".$dateformatedDebut);
c'est donc mes comparaisons sur les date qui foirent. j'ai essayé plusieurs trucs mais je n'y arrive pas.

C'est mysql, et pour le getLine c'est PDO.
$dateformatedDebut et $dateformatedFin ont le même format , je les construit de la même maniere.

merci encore

Re: Date mysql

par macgawel » 25 mai 2010, 10:20

Bonjour.

1. $dateformatedDebut vaut quoi ?
Parce que dans ton code, tu nous donnes la façon dont tu renseignes $dateformatedFin mais pas $dateformatedDebut :mrgreen:

2. Tu as essayé de passer ta requête sous PHPMyAdmin ?
Au lieu de faire directement ton getLine(), fais :
$requete = "SELECT 'contrat_id' FROM tab_contrats WHERE 'contrat_publissimo_num'=".$dbh->quote($tabXMLCommercial['code_publissimo'])." AND 'contrat_client_id'=".$numZipSitimmo." AND DATEDIFF('contrat_date_debut',".$dateformatedDebut.")=0";
echo $requete;
$row = $dbh->getLine($requete);
4. Tu pourrais préciser le SGDB que tu utilises ? Parce que le getLine(), je ne le retrouve pas dans la doc php :oops:

5. j'essaie de tester l'égalité de deux dates mais je n'y arrive pas.
En clair ?
- Message d'erreur ? Lequel ?
- Ca fonctionne mais ne retourne pas le résultat attendu ?
- Autre (préciser) ?

Re: Date mysql

par binouz » 25 mai 2010, 10:00

Code : Tout sélectionner

$row = $dbh->getLine("SELECT 'contrat_id' FROM tab_contrats WHERE 'contrat_publissimo_num'=".$dbh->quote($tabXMLCommercial['code_publissimo'])." AND 'contrat_client_id'=".$numZipSitimmo." AND DATEDIFF('contrat_date_debut',".$dateformatedDebut.")=0");

Re: Date mysql

par stopher » 24 mai 2010, 22:06

Slt ,

montres nous ta requêtes complète , ne te manque t'il pas un select ... un probléme de concaténation aussi non ?
'SELECT DATEDIFF(\''.$date_debut.'\',\''.$date_fin.'\')'
Ch.

Date mysql

par binouz » 24 mai 2010, 18:31

Bonjour,
j'essaie de tester l'égalité de deux dates mais je n'y arrive pas.
Dans ma base le format est "DATE".

ma variable php (que je formate):

Code : Tout sélectionner

$datetime2 = date_create_from_format ("d/m/Y",$tabXMLCommercial['date_fin_contrat']); $dateformatedFin = $datetime2->format("Y-m-d");
Et mon code SQL : (j'ai également essayé avec DATEDIFF = 0)

Code : Tout sélectionner

DATEDIFF(contrat_date_debut,".$dateformatedDebut.")=0
ou

Code : Tout sélectionner

contrat_date_debut=".$dateformatedFin .
Si quelqu'un a une idée je suis preneur.

merci d'avance