IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

error in your SQL syntax; [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut error in your SQL syntax;
    Bonjour,
    j'ai un souci :
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00 and 2013-07-23 17:09:10' at line 6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/prking.php?login=ppo&password=m&from=2013-06-10 00:00:00&to=2013-07-23 17:09:10
    Merci de vous réponse
    Dernière modification par rawsrc ; 24/07/2013 à 18h53. Motif: Balises [quote][/quote] pour les messages d'erreur

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    C'est bien de poster un truc qui n'a rien à voir avec le problème...

  3. #3
    Invité
    Invité(e)
    Par défaut
    mon requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = "select DISTINCT jo_jomres_propertys.propertys_uid,jo_jomres_contracts.contract_uid,jo_jomres_rooms.room_uid,jo_jomres_contracts.cancelled,jo_jomres_contracts.date_achat,jo_jomres_contracts.currency,jo_jomres_contracts.date_achat,jo_jomres_contracts.contract_total,jo_jomres_contracts.deposit_paid,jo_jomres_guests.firstname,jo_jomres_guests.surname,jo_jomres_guests.email,jo_jomres_guests.tel_mobile,jo_jomres_guests.tel_fax,jo_jomres_guests.postcode,jo_jomres_guests.town,jo_jomres_guests.country,jo_jomres_contracts_details.date,jo_jomres_contracts_details.nbroom,jo_jomres_contracts_details.prix,jo_jomres_contracts_details.rateuid,(contract_total-deposit_paid)as dueAmount,(adults+children) as paxCount 
    from jo_jomres_propertys JOIN jo_jomres_contracts ON (jo_jomres_propertys.propertys_uid=jo_jomres_contracts.property_uid) 
                             JOIN jo_jomres_contracts_details ON (jo_jomres_contracts.contract_uid = jo_jomres_contracts_details.contractuid)
                             JOIN jo_jomres_guests ON (jo_jomres_guests.guests_uid = jo_jomres_contracts.guest_uid)
    						 JOIN  jo_jomres_rooms ON (jo_jomres_rooms.propertys_uid = jo_jomres_propertys.propertys_uid)
    						 JOIN  jo_jomres_partenaire ON (jo_jomres_partenaire.id_partenaire = jo_jomres_propertys.idpartenaire)
    WHERE date_achat between $from and $to";
    $to=2013-07-23 17:09:10
    $from=2013-06-07 00:00:00

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE date_achat between '$from' AND '$to'";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Utilise un preparedStatement pour éviter d'avoir des surprises sur les formats des dates que tu passes en paramètre dans la requête.

    A+.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    en fait je fait ce URL http://localhost/prking.php?login=pp...rom=2013-06-10 00:00:00&to=2013-07-23 17:09:10

    et revient dans le navigateur :http://localhost/prking.php?login=pp...-23%2017:09:10

    et retourne cette erreur You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00 and 2013-07-23 17:09:10' at line 7

    sachant j'exécuter la requête dans Mysql est ça roule .

    Merci de vous réponse

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    - urlencode()
    - urldecode()

    + correction donnée par Sabotage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE date_achat between '$from' AND '$to'";
    Cela dit, passer un login et un mot de passe via URL me semble... dangereux !

  8. #8
    Invité
    Invité(e)
    Par défaut
    le navigateur ajout %20 entre la date et time ce pour cela donner cette erreur lorsque fait le comparaison avec la date 2013-06-07 00:00:00 et 2013-06-07 00:00:00
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from=2013-06-10%2000:00:00&         2013-07-23%2017:09:10

    merci de vous réponse
    Dernière modification par Invité ; 25/07/2013 à 14h32.

  9. #9
    Invité
    Invité(e)
    Par défaut
    J'ai donné la solution dans mon message précédent :
    - il faut utiliser urlencode() sur l'URL AVANT ;
    - puis urldecode() sur les $_GET.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    moi je tester mon requête avec cette URL :
    http://url&from=2013-06-10T00:00:00&...07-23T17:09:10

    ma requête est suivante:
    WHERE date between $from and $to

    sachant que la date dans la base est la forme suivante :2013-06-07 00:00:00
    si quelqu'un donner une aide

  11. #11
    Membre Expert
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2004
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 286
    Par défaut
    Si tu as ceci : 2013-06-10T00:00:00
    Et tu veux avoir : 2013-06-10 00:00:00

    Visuellement je ne vois qu'un caractère à changer.

    Ca ne doit pas être bien compliqué :
    http://fr2.php.net/str_replace

  12. #12
    Invité
    Invité(e)
    Par défaut
    dans mon requête
    WHERE date between str_replace('T', '', 2013-06-07T00:00:00);and str_replace('T', '', 2013-07-23T17:09:10) ça déclencher une erreur.
    les deux date sont passé dans url
    Merci de vous réponse

  13. #13
    Invité
    Invité(e)
    Par défaut
    @manjava, il faut arrêter d'écrire n'importe quoi.
    Si tu ne sais pas utiliser les solutions qu'on te donne, dis-le !

    N.B. Quelle est ta langue natale ? Pas le français, manifestement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    // Récupération des données transmises via URL :
    $login = urldecode($_GET['login']);
    $password = urldecode($_GET['password']);
    $from = urldecode($_GET['from']);
    $to = urldecode($_GET['to']);
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    // Requête :
    $sql = "select DISTINCT jo_jomres_propertys.propertys_uid,jo_jomres_contracts.contract_uid,jo_jomres_rooms.room_uid,jo_jomres_contracts.cancelled,jo_jomres_contracts.date_achat,jo_jomres_contracts.currency,jo_jomres_contracts.date_achat,jo_jomres_contracts.contract_total,jo_jomres_contracts.deposit_paid,jo_jomres_guests.firstname,jo_jomres_guests.surname,jo_jomres_guests.email,jo_jomres_guests.tel_mobile,jo_jomres_guests.tel_fax,jo_jomres_guests.postcode,jo_jomres_guests.town,jo_jomres_guests.country,jo_jomres_contracts_details.date,jo_jomres_contracts_details.nbroom,jo_jomres_contracts_details.prix,jo_jomres_contracts_details.rateuid,(contract_total-deposit_paid)as dueAmount,(adults+children) as paxCount 
    from jo_jomres_propertys JOIN jo_jomres_contracts ON (jo_jomres_propertys.propertys_uid=jo_jomres_contracts.property_uid) 
                             JOIN jo_jomres_contracts_details ON (jo_jomres_contracts.contract_uid = jo_jomres_contracts_details.contractuid)
                             JOIN jo_jomres_guests ON (jo_jomres_guests.guests_uid = jo_jomres_contracts.guest_uid)
    						 JOIN  jo_jomres_rooms ON (jo_jomres_rooms.propertys_uid = jo_jomres_propertys.propertys_uid)
    						 JOIN  jo_jomres_partenaire ON (jo_jomres_partenaire.id_partenaire = jo_jomres_propertys.idpartenaire)
    WHERE date_achat between '$from' and '$to'";
    ?>

  14. #14
    Membre Expert
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2004
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 286
    Par défaut
    Citation Envoyé par manjava Voir le message
    dans mon requête
    WHERE date between str_replace('T', '', 2013-06-07T00:00:00);and str_replace('T', '', 2013-07-23T17:09:10) ça déclencher une erreur.
    les deux date sont passé dans url
    Merci de vous réponse
    Tu fous une fonction PHP dans une requête mysql et en plus elle est fausse.
    Tu remplace le 'T' par du vide '' et non pas un espace ' '

    Mais ça reste une solution "crade" car tu ne maitrises absolument pas la sérialisation de tes données.
    Le mieux reste l'exemple donné par jreaux62

    Et le mieux mieux serait de rien passer en URL.
    Les POST ou SESSIONS sont là pour ça.

  15. #15
    Invité
    Invité(e)
    Par défaut
    j'ai remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $from = urldecode($_GET['from']);
    $to = urldecode($_GET['to']);
    mais toujours la même problème You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00 and 2013-07-23 17:09:10' at line 7

    j'ai besoin svp une réponse à mon cas suivante

    Merci en avance

  16. #16
    Membre Expert
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2004
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 286
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    J'ai donné la solution dans mon message précédent :
    - il faut utiliser urlencode() sur l'URL AVANT ;
    - puis urldecode() sur les $_GET.
    Si dans ce message précédent il avait déjà donné la solution dans un autre de ses messages précédents.

    J'ai "l'impression" que tu ne te rends pas compte de ce que tu codes sans même comprendre ce que tu fais.
    Du coup tu place un url decode sans même te demander s'il ne faudrait pas encoder avant.


    j'ai besoin svp une réponse à mon cas suivante
    Réponse plus haut

  17. #17
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Utilise un prepared Statement comme je disais plus haut.

    A+.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    mon problème est suivante :j'ai une requête sql dans une page php ,je veux faire un teste par un url :
    http://localhost/prking.php?login=pp...07-23T17:09:10

    dans la base de donné mon date est la format suivante:2013-06-07 00:00:00
    WHERE date between $from and $to
    $from=2013-06-10T00:00:00
    $to=2013-07-23T17:09:10
    date =2013-06-07 00:00:00
    comment je peux faire pour que le résultat retourner

    Merci à vous

  19. #19
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    C'est important d'avoir l'heure dans ton $from et dans ton $to ?

    Si c'est pas le cas, ça pourrait simplifier ton soucis

  20. #20
    Invité
    Invité(e)
    Par défaut
    oui c'est important .
    merci de vous réponse

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probleme mysql error in your SQL syntax;
    Par smile_88 dans le forum MySQL
    Réponses: 1
    Dernier message: 02/05/2010, 16h18
  2. erreur #1064 - You have an error in your SQL syntax;
    Par tamatifa dans le forum Installation
    Réponses: 1
    Dernier message: 20/05/2009, 22h21
  3. [MySQL] erreur dans une boucle ?You have an error in your SQL syntax; check the manual that c
    Par keokaz dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/10/2008, 23h08
  4. Erreur incomprehensible:You have an error in your SQL syntax.
    Par Siguillaume dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/06/2008, 10h18
  5. You have an error in your SQL syntax; check the manual ..
    Par Spaccio dans le forum Requêtes
    Réponses: 5
    Dernier message: 09/07/2006, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo