PHP insert into ($variable1)value($variable2)

Résolu
biobabar Messages postés 9 Statut Membre -  
 Utilisateur anonyme -
Bonjour à tous,
je suis nouveau dans le monde de la programmation et j'ai un soucis avec des variables php. Je ne sais pas si c'est un pb de syntaxe ou c'est p-e tout simplement impossible.
Je vous expose mon problème
J'ai un champ avec des choix possibles

<td style="text-align:right;">Type Budget :</td>
<td>
<select name="type" id="type" style="text-align:center;">
<option value="" selected="selected">Tous</option>
<option value="soft">logiciel</option>
<option value="hard">matériel</option>

la variable type prend donc la valeur soft ou hard selon la selection.
Ensuite, j'ai la fonction qui m'interesse et pose pb :

INSERT INTO tb_budget (`id_budget`, `desc_budget`, `code_budget`, ".$type."."_1", ".$type."."_2",`annee`) VALUES ('','".addslashes($desc_budget)."', '".addslashes($code_budget)."', '".$montant_budget."', '".$montant_actu2."', '".$annee."');

Le problème est de trouver les champs en fonction du type choisit. Les champs créés sont : soft_1, soft_2, hard_1, hard_2 d'où $type._1, $type._2
la varible $type arrive bien est bien entrée, mais j'ai un message d'erreur sur la ligne INSERT INTO. Je pense et j'espère que c'est juste un pb de syntaxe.
Il va s'en dire que je n'ai affiché que les lignes utiles pour notre affaire.
Merci d'avance
Configuration: Windows XP
Firefox 3.0.5

9 réponses

  1. Utilisateur anonyme
     
    tu ne peu pas mettre directement ce que contient la variable type plutot que de mettre $type ?
    ou alors, défini type_1 et type_2 avant :

    $type1 = $type."_1";
    $type2 = $type."_2";
    $type3 = $type."_3";
    
    $sql="INSERT INTO tb_budget (id_budget, desc_budget, code_budget,$type1, $type2, $type3, annee) VALUES('', 'addslashes($desc_budget)', 'addslashes($code_budget)', '$montant_budget', '$montant_actu2', '$montant_actu3', '$annee');"; 
    
    1
    1. biobabar Messages postés 9 Statut Membre
       
      YES !!!!!!!!!! ca marche !!
      trop bon ton idée !!!!!!!!!!!!
      houa houa houa !!!
      lol
      tu m'as sacrément bien aidé.
      ça parait tout simple qd on t'écoute.
      (j'ai un autre pb, mais je pense qu'il n'est pas en relation avec celui-ci, j'espère me débrouiller tout seul pour celui-ci)
      Merci bcp, infiniment
      0
  2. Utilisateur anonyme
     
    $type1 = $type."_1";
    $type2 = $type."_2";
    $type3 = $type."_3";

    $sql="INSERT INTO tb_budget (id_budget, desc_budget, code_budget,$type1, $type2, $type3, annee) VALUES('', 'addslashes($desc_budget)', 'addslashes($code_budget)', '$montant_budget', '$montant_actu2', '$montant_actu3', '$annee');";
    1
  3. biobabar Messages postés 9 Statut Membre
     
    Si vous souhaitez avoir d'autres informations, n'hésitez pas.
    Pour le moment, je n'ai pas avancé d'un pouce malgré mes recherches sur le net.
    Tout le monde parle de variables comme valeurs mais pas comme champs.
    d'où ma difficulté
    merci
    0
  4. Utilisateur anonyme
     
    pourrait tu envoyer le message d'erreur ?
    0
    1. biobabar Messages postés 9 Statut Membre
       
      oui bien sur, le voilà :

      Parse error: parse error in C:\wamp\www\site\Fonctions\page_ajouter_budget.php on line 94

      la ligne 94 pour info est la ligne "insert into ...(.....);"
      tout marchait jusqu'à ce que j'ajoute la possibilité d'avoir plusieurs champs.
      et je ne sais pas écrire $type _1 pour décrire le champs ...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    INSERT INTO tb_budget (`id_budget`, `desc_budget`, `code_budget`, '$type_1', '$type_2', 'annee') VALUES ('addslashes($desc_budget)', 'addslashes($code_budget)', '$montant_budget', '$montant_actu2', '$annee');

    essai comme ça
    0
    1. biobabar Messages postés 9 Statut Membre
       
      Ca ne marche pas, j'ai du coup une autre erreur :

      Notice: Undefined variable: type_1 in C:\wamp\www\site\Fonctions\page_ajouter_budget.php on line 94
      Notice: Undefined variable: type_2 in C:\wamp\www\site\Fonctions\page_ajouter_budget.php on line 94

      peut-être n'est-ce pas les bons guillemets ??
      J'ai un peu de mal avec quels guillemets mettre...
      0
  7. Utilisateur anonyme
     
    tu peu envoyer la ligne 94 ?
    0
    1. biobabar Messages postés 9 Statut Membre
       
      je t'envoie ça :

      INSERT INTO tb_budget (`id_budget`,`desc_budget`,`code_budget`,'$type_1','$type_2','$type_3',`annee`) VALUES('','".addslashes($desc_budget)."','".addslashes($code_budget)."', '".$montant_budget."','".$montant_actu2."','".$montant_actu3."','".$annee."');

      et je suis allé un peu vite tout à l'heure, il restait une autre ligne d'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 ''','','',`annee`)VALUES('','zertzert','DAF1032','1000000','10000','100','2008')' at line 1

      Si ca peut t'aider
      mais ligne 1 je n'ai que la balise php

      enfin pour ne rien te cacher, c'est pour être intégré ds une fonction. mais je ne pense pas que ca ai grand interet dans mon problème

      function AjouterBudget ($desc_budget,$code_budget,$type,$montant_budget,$montant_actu2,$montant_actu3,$annee){

      $sql="INSERT INTO tb_budget (`id_budget`,`desc_budget`,`code_budget`,'$type_1','$type_2','$type_3',`annee`) VALUES('','".addslashes($desc_budget)."','".addslashes($code_budget)."', '".$montant_budget."','".$montant_actu2."','".$montant_actu3."','".$annee."');";

      if(!mysql_query($sql)){ die(mysql_error());};

      ligne 94 étant $sql="insert into ...
      et comme je te le disais, sans avoir de variable ds les champs, ca marchait très bien.
      merci de ton aide
      0
  8. Utilisateur anonyme
     
    $sql="INSERT INTO tb_budget (id_budget, desc_budget, code_budget,$type_1, $type_2, $type_3, annee) VALUES('', 'addslashes($desc_budget)', 'addslashes($code_budget)', '$montant_budget', '$montant_actu2', '$montant_actu3', '$annee');";

    0
    1. biobabar Messages postés 9 Statut Membre
       
      j'ai exactement le même message d'erreur ..
      j'ai tenté qq "echo" pour voir la syntaxe de "$type" rattaché à "_1"
      Les seuls qui marche pour mon test sont :
      echo $type."_4";
      echo "$type"."_6";
      je vais tester ça
      0
      1. biobabar Messages postés 9 Statut Membre > biobabar Messages postés 9 Statut Membre
         
        malgré un echo qui marche parfaitement
        le passage dans insert into me ramène à une erreur :

        Parse error: parse error in C:\wamp\www\site\Fonctions\page_ajouter_budget.php on line 94

        je n'ai pas d'idées
        0
  9. Utilisateur anonyme
     
    mais tu a vraiment besoin de spécifier l'ordre des entrées avant l'insertion ?
    0
    1. biobabar Messages postés 9 Statut Membre
       
      oui car j'ai 15 champs sinon
      les types sont aux nombres de 5 et je dois proposer 3 valeurs chacuns
      donc le plus simple est de proposer une variable qui donnera le début de nom aux champs et lui sera ajouté le chiffre de 1 à 3 pour retrouvé sa valeurs
      je sais pas si tu me suis. j'imagine que ca doit être un peu galère ...

      pour faire simple, je fais ds l'exemple :
      je dois choisir un type et ce type doit contenir 3 valeurs
      j'ai donc le type_1 type_2 type_3
      comme j'ai 5 type, j'ai 5*3=15 champs dans ma table pour celà.
      Je pourrais les mettre dans le site, mais ca n'a aucun interet car seulement 3 valeurs seraient intégrées.
      si je choisis le type logiciel, j'ai le choix de 3 valeurs, et je souhaiterais qu'elles s'integre directement dans les champs soft_1 soft_2 et soft_3, laissant les autres champs libres.
      En tout cas merci pour ton aide
      0