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 :

Message d'erreur à l'exécution d'une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut Message d'erreur à l'exécution d'une requête
    Voilà j'ai créer un formulaire pour faire des actus avec une position à définir.
    La personne peut modifier cette actu donc modifier la position d'affichage. J'ai donc fait la différence entre l'ancienne position et la nouvelle pour pour pouvoir décalé toutes les autres vers le haut ou vers la bas avec ce petit bout de code.
    Le seule problème c'est qu'à l'éxécution j'ai ce message d'erreur :
    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $diffpos=$_POST[ancpos]-$_POST[num_ordre];
       if($diffpos > 0)
       {
          $req3="update actus set pos_actus=pos_actus+1 where pos_actus <=".$_POST[anc_ordre] 
          "and pos_actus>=".$_POST[num_ordre];
          $res3=mysql_query($req3);
       }
       else
       {
          $req3="update actus set pos_actus=pos_actus-1 where pos_actus >=".$_POST[anc_ordre] 
        "and pos_actus<=".$_POST[num_ordre];
          $res3=mysql_query($req3);
       }

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Nous te l'avons déjà dit ailleurs : il faut des guillemets dans tes $_POST...

  3. #3
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Ok mais çà ne change pas le message d'erreur

  4. #4
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    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
    $diffpos=$_POST[ancpos]-$_POST[num_ordre];
       if($diffpos > 0)
       {
          $req3="update actus set pos_actus=pos_actus+1 where pos_actus <=".$_POST['ancpos'] 
          "and pos_actus>=".$_POST['num_ordre'];
          $res3=mysql_query($req3);
       }
       else
       {
          $req3="update actus set pos_actus=pos_actus-1 where pos_actus >=".$_POST['ancpos'] 
        "and pos_actus<=".$_POST['num_ordre'];
          $res3=mysql_query($req3);
       }
    Voici donc le bout de code avec les ' pour les variables

  5. #5
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    tu as oublie ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $diffpos=$_POST['ancpos']-$_POST['num_ordre'];
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  6. #6
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Ton code est pas très clair, d'ailleurs en MySQL j'ai l'habitude de mettre certaines parties en majuscules (INSERT INTO, SELECT, UPDATE SET, ...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $diffpos = $_POST["ancpos"] - $_POST["num_ordre"];
     
    if($diffpos > 0)
    {
        $req3 = "UPDATE actus SET pos_actus = pos_actus+1 WHERE pos_actus <= ".$_POST["anc_ordre"]." and pos_actus >= ".$_POST["num_ordre"];
        $res3 = mysql_query($req3);
    }
     
    else
    {
        $req3="UPDATE actus SET pos_actus = pos_actus-1 WHERE pos_actus >= ".$_POST["anc_ordre"]." and pos_actus <= ".$_POST["num_ordre"];
        $res3 = mysql_query($req3);
    }
    L'erreur vient donc surement du point que tu as oublié autour de $_POST["anc_ordre"].

  7. #7
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    o la modification de la position de mon actu se fait bien elle passe bien en1ère position par exemple mais l'incrémentation ou la décrémentation ne se fait pas ?

  8. #8
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    je viens d'essayer sans le where l'incrémentation se fait bien, mais j'ai besoin de ces conditions

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par leloup84
    je viens d'essayer sans le where l'incrémentation se fait bien, mais j'ai besoin de ces conditions
    FAIS UN ECHO DE $req3 !

    Et regarde ce que donne ta requete une fois generee :

    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
     
    $diffpos = $_POST["ancpos"] - $_POST["num_ordre"]; 
     
    if($diffpos > 0) 
    { 
        $req3 = "UPDATE actus SET pos_actus = pos_actus+1 WHERE pos_actus <= ".$_POST["anc_ordre"]." and pos_actus >= ".$_POST["num_ordre"]; 
        //$res3 = mysql_query($req3); 
        echo ("Dans le if :<br>".$req3);
    } 
     
    else 
    { 
        $req3="UPDATE actus SET pos_actus = pos_actus-1 WHERE pos_actus >= ".$_POST["anc_ordre"]." and pos_actus <= ".$_POST["num_ordre"]; 
        //$res3 = mysql_query($req3); 
       echo ("Dans le else :<br>".$req3);
    }
    Et viens coller ici le resultat de tes deux requetes.

  10. #10
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    il n'y a rien dans le echo
    Je viens de faire ma requete directement dans mysql en remplacant les variables par des chiffres et cela marche, je ne comprend je déclare mal mes variables ? La condition est mal écrite ?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par leloup84
    il n'y a rien dans le echo
    Je viens de faire ma requete directement dans mysql en remplacant les variables par des chiffres et cela marche, je ne comprend je déclare mal mes variables ? La condition est mal écrite ?
    !!! HHAAHA

    Il doit y avoir au moins "Dans le if :" !

    Et puis il ne faut pas faire ca requete a la main ! il faut copier coller ce qui est genere par ton script ! echo $req3 est la seule solution ! s'il n'y a rien dans $req3 c'est que tu ne passe pas dans le if et le else ce qui est impossible !

  12. #12
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Déjà fais le en PHP avec les chiffres mis par toi-même.
    Ensuite je te conseillerais d'utiliser des variables intermédiaires, pcq les $_POST["xxx"] c'est assez long et ton code est moins clair. A la limite mets des paranthèses ou quoi dans tes WHERE pcq tu as des conditions avec des => etc...


  13. #13
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    j'ai fais un echo $req3 voilà ce qu'il me met :
    update actus set pos_actus=pos_actus+1 where pos_actus < 3and pos_actus >=1

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par leloup84
    j'ai fais un echo $req3 voilà ce qu'il me met :
    update actus set pos_actus=pos_actus+1 where pos_actus < 3and pos_actus >=1
    rajoute un espace entre 3 et and !

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par dev_php_205
    Citation Envoyé par leloup84
    j'ai fais un echo $req3 voilà ce qu'il me met :
    update actus set pos_actus=pos_actus+1 where pos_actus < 3and pos_actus >=1
    rajoute un espace entre 3 et and !
    Non .. en relisant .. c'est pas possible que ce soit ca qui soit affiche par echo ! Fait un copier coller.. un vrai en selectionnant avec la souris + controle C !!

  16. #16
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Points : 262
    Points
    262
    Par défaut
    Merci à tous le problème est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur d'exécution d'une requête liée sous sqlserver 2008
    Par zanoubya dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/05/2012, 13h56
  2. Erreur d'exécution d'une requête SQL
    Par KnowPart dans le forum JDBC
    Réponses: 3
    Dernier message: 30/12/2010, 15h48
  3. [AC-2003] Erreur à l'exécution d'une requête d'ajout
    Par flet le kid dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 29/05/2009, 17h27
  4. Erreur d'exécution d'une requête sql
    Par marceline dans le forum Oracle
    Réponses: 2
    Dernier message: 11/07/2006, 13h12
  5. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20

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