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 :

[Conception] Erreur de syntaxe avec un champ de tableau


Sujet :

PHP & Base de données

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut [Conception] Erreur de syntaxe avec un champ de tableau
    Bonjour,

    J'ai une erreur de syntaxe que je n'arrive pas à contourner pour un update de table avec une valeur contenue dans un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = ("UPDATE ".$prefixe_table."maj_banque_mvt_lignes 
    										SET id_mvt=\"$id_mvt\",mvt_date=\"$mvt_date\" , bud_classe=\"$tab[".bud_classe."]\" 
     
    WHERE id_mvt_ligne=\"$id_mvt_ligne\"");
    L'initialisation d'une requête peut-elle contenir ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bud_classe=\"$tab[".bud_classe."]\"

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    essaye quelque chose comme ça plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $req = "UPDATE $prefixe_table maj_banque_mvt_lignes 
    		SET id_mvt='$id_mvt',mvt_date='$mvt_date' , bud_classe='".$tab[bud_classe]".' 
    		WHERE id_mvt_ligne='$id_mvt_ligne'");
    ?>

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Oui, c'est mieux comme cela, mais c'est tout à fait ça et d'ailleur, il faut carrément que je fasse toujours comme cela. Même pour les champs qui ne sont pas en tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $req = "UPDATE $prefixe_table maj_banque_mvt_lignes 
    		SET id_mvt='$id_mvt',mvt_date='$mvt_date' , bud_classe='".$tab[bud_classe]."' 
    		WHERE id_mvt_ligne='$id_mvt_ligne'");
    ?>
    Merci encore

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Je coyais que c'était bon, mais en exécutant la totalité du scénario, il me met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Use of undefined constant mvt_date - assumed 'mvt_date
    et idem pour les autres champs de tableau sur le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    VALUES (\"\" , \"$id_mvt\",'".$tab[mvt_date]."' , '".$tab[bud_classe]."' , '".$tab[bud_categorie]."' ,'".$tab[bud_ss_categorie]."' ,
    											'".$tab[mvt_tiers_type]."', '".$tab[mvt_id_tiers]."'

  5. #5
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    avant toute chose, je te conseille d'aller lire ce tuto, et plus particulièrement la conclusion

    Et d'en profiter pour réécrire tes requêtes. Ainsi, le code sera plus lisible, et odnc beaucoup plus facile à debugger (pas d'échapement de guillemets, ...).

  6. #6
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Citation Envoyé par lodan
    Je coyais que c'était bon, mais en exécutant la totalité du scénario, il me met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Use of undefined constant mvt_date - assumed 'mvt_date
    C'est un avertissement de php pour te dire que la constante mvt_date n'existe pas, et qu'en lieu et place de mvt_date il utilise la chaine 'mvt_date'

    Pour faire disparaitre ces notice, il faut que tu remplace les $tab[mvt_date] par $tab['mvt_date'], et ainsi de suite pour toutes les colones de ton tableau

    Toutes les infos, dans la section des tableaux dans la doc et plus particulièrement la partie À faire et à ne pas faire avec les tableaux

  7. #7
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    J'étais persuadé d'avoir fait ce que tu préconises, le brouillard dans ma mémoire, j'ai quelques octets qui ont sautés, un mauvais atterrissage de tête sur le disque dur sûrement.

    Merci

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

Discussions similaires

  1. [WD-2003] Erreur de syntaxe avec Champs imbriqués contenant Date
    Par turdel dans le forum VBA Word
    Réponses: 7
    Dernier message: 13/06/2009, 12h34
  2. [PHP 4] Erreur de syntaxe avec Implode
    Par jmtrivia dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2009, 18h43
  3. Gestionnaire d'interruptions : erreur de syntaxe avec l'opcode call
    Par Link/DD dans le forum Programmation d'OS
    Réponses: 7
    Dernier message: 23/01/2008, 17h00
  4. [POO] Erreur de syntaxe avec une classe
    Par sirbaldur dans le forum Langage
    Réponses: 5
    Dernier message: 10/01/2007, 13h30
  5. Erreur de syntaxe avec UPDATE
    Par tyarak dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/02/2006, 01h18

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