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

Résolu/Fermé
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008 - 18 déc. 2008 à 14:25
 Utilisateur anonyme - 18 déc. 2008 à 17:01
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
A voir également:

9 réponses

Utilisateur anonyme
18 déc. 2008 à 16:53
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
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 17:01
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
Utilisateur anonyme
18 déc. 2008 à 16:56
$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
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 15:49
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
Utilisateur anonyme
18 déc. 2008 à 15:58
pourrait tu envoyer le message d'erreur ?
0
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 16:16
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 déc. 2008 à 16:20
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
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 16:25
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
Utilisateur anonyme
18 déc. 2008 à 16:26
tu peu envoyer la ligne 94 ?
0
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 16:29
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
Utilisateur anonyme
18 déc. 2008 à 16:38
$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
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 16:43
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
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008 > biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 16:46
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
Utilisateur anonyme
18 déc. 2008 à 16:45
mais tu a vraiment besoin de spécifier l'ordre des entrées avant l'insertion ?
0
biobabar Messages postés 9 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 16:53
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
Utilisateur anonyme
18 déc. 2008 à 17:01
derien ^^
0