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 :

problème de syntaxe


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut problème de syntaxe
    bonjour

    pourriez vous le dire si c'est un problème de syntaxe ou autre me corriger svp

    je récupère les identifiants
    -----------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $id_client = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["id"])));
    $NomCarte = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nomcarte"])));
    je modifie
    ----------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result=mysql_query("update planningcarte SET id_carte=(select id_carte from cartes where nomcarte='$NomCarte') WHERE id_client='$id_client'");
    ca ne fonctionne pas mais si je fais comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result=mysql_query("update planningcarte SET id_carte=(select id_carte from cartes where nomcarte='toto') WHERE id_client='2'");
    ça fonctionne un coud main merci

  2. #2
    Membre expérimenté
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Par défaut
    Salut,
    peux tu afficher ce que te renvoie :$NomCarte
    Citation Envoyé par ghost73 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $NomCarte = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nomcarte"])));
    Sinon, en mettant des double cotes ", je pense que cela prend en compte la casse, tu peux vérifier cela aussi.

    au fait peux tu aussi être plus explicite "par cela fonctionne ou pas" : erreur ou vide?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    de cette maniere j'ai belle et bien le bon resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<br/>le num de la carte est: ".$NomCarte;
    donc "carte2"

    mais de cette maniere avec une requete simple pour tester:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query("select cartes.id_carte from cartes where nomcarte='$NomCarte'");
    echo "<br/>le nom de la carte est: ".$result;

    il me revoit #4 au lieu de 2

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    pour moi si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_POST["id"]=='toto';
    et
    $_POST["nomcarte"]=='2';
    c'est sur que ca marche;

    oubli pas de faire une connexion à la bdd pour utiliser mysql_real_escape_string,

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    pourrais tu développer car je ne comprend pas peut être par un exemple
    ma connexion a l base dd fonctionne car j'ai fais des tests

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    il faut faire bdd_connect avec d'utiliser mysql_real_escape_string


    fait un print_r($_POST) ,et donne nous le résulat

  7. #7
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
    // (bouton "Modifier" du formulaire)
    if(isset($_POST["Modifier"]))
    {
    // on se connecte à notre base
    $base = mysql_connect ('localhost', 'root', '') or die ('ERREUR '.mysql_error());  
    mysql_select_db ('kserver3', $base)or die ('ERREUR '.mysql_error());
    if (!$base)
    {
    die ('Impossible d\'utiliser la base : ' . mysql_error());
    } 
    
    //On attribue une variable pour chaque champ du formulaire
    
    $nom = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nom"])));
    
    echo "son nom est ".$nom; // ok ca fonctionne
    
    $telephone = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["telephone"])));
    
    echo "<br/>son num est ".$telephone; // ok ca fonctionne
    
    $id_client = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["id"])));
    
     echo '<br/>son ip du client est '.$id_client;// ok ca fonctionne
    
    $NomCarte = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nomcarte"])));
    
    echo "<br/>le nom de la carte est: ".$NomCarte;// ok ca fonctionne
    ------------------------------------------------------------------------------------------------
    REPONSE:
    ----------------
    son nom est Delmo
    son num est 0484/235548
    son ip du client est 2
    le nom de la carte est: carte2
    ------------------------------------------------------------
    
    //On enregistre les données modifiées
    ------------------------------------------
    $result = mysql_query("select cartes.id_carte from cartes where nomcarte='$NomCarte'");
    
     echo "<br/>le nom de la carte est: ".$result;
    ----------------------------------------------------
    RESULTAT
    -------------le nom de la carte est: Resource id #4
    -----------------------------------------------------------------
    //Si il y a une erreur, on crie ^^
    if (!$result) 
    {
        die('Requête invalide : ' . mysql_error());
    }
    else 
    {
    //Si tout va bien, on informe que la modification est faite
    echo '<p>La modification à été effectué avec succès. 
    }
    
    }
    ?>

  8. #8
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    Citation Envoyé par ascito Voir le message
    il faut faire bdd_connect avec d'utiliser mysql_real_escape_string


    fait un print_r($_POST) ,et donne nous le résulat
    voici le résultat !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [id] => 2 [nom] => Delmottes [telephone] => 0484/285254 [nomcarte] => carte2 [type] => sd [marque] => RDC [strdate] => 2012-06-01 [enddate] => 2013-06-01 [montant] => 150 [Modifier] => Modifier )
    tout y est bien dedans mais purquoi quand j'utilise mes variables dans ma requête ca ne marche pas ?????

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query("select cartes.id_carte from cartes where nomcarte='$NomCarte'");
    celle la à l'air de fonctionner non , $result renvoi une ressource tout va bien..


    http://php.net/manual/fr/function.mysql-fetch-array.php

  10. #10
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    [QUOTE=ascito;6815082]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query("select cartes.id_carte from cartes where nomcarte='$NomCarte'");
    celle la à l'air de fonctionner non , $result renvoi une ressource tout va bien..


    oui sauf que le résultat n'est pas juste il revoit Ressource id #4 alors que moi j’attends a id 2

    ici tout est juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [id] => 2 [nom] => Delmottes [telephone] => 0484/285254 [nomcarte] => carte2 [type] => sd [marque] => RDC [strdate] => 2012-06-01 [enddate] => 2013-06-01 [montant] => 150 [Modifier] => Modifier )
    mais une fois que j'utilise une variable dans une requete ca ne marche pas ???

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    ben regarde au moin le lien que je te donne...mysql_query ne te renverra JAMAIS 2 ...

  12. #12
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    ok merci je vais regarder et te tiens au courant merci

  13. #13
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    bien sur tu as raison ! jamais il me renverra 2 ok
    grâce a ca j'ai un peu avancer mais je suis confronter a un nouveau dilemme
    lorsque je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    if(isset($_POST["Modifier"]))
    {
    //  connexion à BDD
     
     //$id = $_GET["idPersonne"] ;
    //On attribue une variable pour chaque champ du formulaire
    $nom = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nom"])));
    $telephone = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["telephone"])));
    $id_client = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["id"])));
    $NomCarte = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["nomcarte"])));
     
    //On enregistre les données modifiées
    $result=mysql_query("update planningcarte SET id_carte=(select id_carte from cartes where nomcarte='$NomCarte') WHERE id_client='$id_client'");
     
    //Si il y a une erreur, on crie ^^
    if (!$result) 
    {
        die('Requête invalide : ' . mysql_error());
    }
    else 
    {
    //Si tout va bien, on informe que la modification est faite
    echo '<p>La modification à été effectué avec succès.
    }
    il modifie pas toujours la bonne ligne ou de fois il met 0 au lieu de changer l'id de la base par celui de la requête

    une idée ???

  14. #14
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Par défaut
    Bonjour,

    Désolé de prendre le sujet en plein milieu mais c'est interessant

    Je ne sais pas si c'est la meilleure méthode mais j'ai pour habitude de formuler mets requête contenant des variables de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result=mysql_query("update planningcarte SET id_carte=(select id_carte from cartes where nomcarte='" .  $NomCarte . "') WHERE id_client='" . $id_client . "'");
    Peut être que sa peut régler ton problème ...

    Sinon as tu vérifié si ton $_POST["id"] récupérait correctement la valeur ?

  15. #15
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    merci a toi

    effectivement je ne récupérer pas le bon id

    Merci

  16. #16
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    quelqu'un pourrai corriger mon erreur de syntaxe dans cette requête
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res="SELECT distinct * ,case when endDate<current_date then "."'Retard '"."when endDate>current_date then "."'EnCours '".""."end as statu FROM cartes ca,clients c,planningcarte p where c.id_client=p.id_client and ca.id_carte=p.id_carte".$_GET['debut'].','.$nb_affichage_par_page;

    Erreur SQL !

    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 '' at line 1

  17. #17
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Par défaut
    Les simples cotes après ton $_GET['debut'] devraient être des guillemets je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res="SELECT distinct * ,case when endDate<current_date then "."'Retard '"."when endDate>current_date then "."'EnCours '".""."end as statu FROM cartes ca,clients c,planningcarte p where c.id_client=p.id_client and ca.id_carte=p.id_carte".$_GET['debut'].",".$nb_affichage_par_page;
    Ensuite toujours après le $_GET tu mets la variable $nb_affichage_par_page mais que fait-elle ? tu ne fais pas de test avec ?

  18. #18
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    Merci

  19. #19
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    Bonjour

    quel type faut il dans la balise input (html) pour qu'il accepter des chiffre

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		  <p>
                <label for="montant">Montant: </label>
                <input type="text" name="montant" id="name" />
              </p>
    j’introduis exemple 300
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		$Montant = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["montant"])));
     echo $Montant;
    je ne vois rien merci

  20. #20
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Par défaut
    Citation Envoyé par ghost73 Voir le message
    Bonjour

    quel type faut il dans la balise input (html) pour qu'il accepter des chiffre

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		  <p>
                <label for="montant">Montant: </label>
                <input type="text" name="montant" id="name" />
              </p>
    j’introduis exemple 300
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		$Montant = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["montant"])));
     echo $Montant;
    je ne vois rien merci
    Merci j'ai trouvé erreur de syntaxe

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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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