Concaténer des variables au compte goutte
Résolu/Fermé
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
-
10 juin 2009 à 12:02
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 10 juin 2009 à 14:40
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 10 juin 2009 à 14:40
A voir également:
- Concaténer des variables au compte goutte
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Supprimer compte instagram - Guide
- Créer un compte instagram sur google - Guide
- Gmail connexion autre compte - Guide
5 réponses
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 juin 2009 à 12:30
10 juin 2009 à 12:30
Ce n'est pas compliqué : tu veux faire autant de requêtes que tu as de lignes ? Tu commences par faire une boucle for sur ce nombre de lignes. Pour chaque ligne, tu récupères chaque champ (grâce à une autre boucle) et tu l'ajoutes à ta requête. Voici le code :
for ( $i=0 ; $i<$ch ; ++$i ) { $query = 'INSERT INTO matable (col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) VALUES('; for ( $j=15*$i ; $j<15*($i+1) ; ++$j ) { if ( $j != 15*$i ) $query .= ','; // on ajoute une virgule si nécessaire $curvar = $_POST['champ'.$j]; $query .= "'$curvar'"; } $query .= ');'; }
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
10 juin 2009 à 13:45
10 juin 2009 à 13:45
Merci beaucoup pour ce code, néanmoins un problème subsiste.
J'avoue avoir du mal à piger toutes les ficelles de ce code donc je vais te montrer exactement ce qu'il fait et ce que je veux faire:
Je précise qu'il s'agit de pouvoir saisir des informations concernant des wagons féroviaires (histoire qu'on sache de quoi on parle ici)
Voici mon tableau original: ________
Combien de wagons voulez vous ajouter ? |____4___|
______________________________________________________________________
| | | | | | | |
|_5555_|_________|_______|__________|________|______________|__________|
| | | | | | | |
|_6666_|_________|_______|__________|________|______________|__________|
| | | | | | | |
|_7777_|_________|_______|__________|________|______________|__________|
| | | | | | | |
|_8888_|_________|_______|__________|________|______________|__________|
|Envoyer|
Donc, j'ai un premier champ qui permet d'ajouter des lignes au tableau.
Le tableau dispose de 15 colonnes (mais ça c'était déjà compris).
Lorsque je clique sur "Envoyer", grâce à ton code, la requête est la suivante:
En fait, c'est comme si ton code ne permettait d'importer dans la base de données que l'avant dernière ligne.
Comme je n'ai pas tout saisi à ton code, je n'ai pas réussi à le dépanner.
Peux-tu m'aider à nouveau s'il te plait ?
D'avance merci,
Momo
J'avoue avoir du mal à piger toutes les ficelles de ce code donc je vais te montrer exactement ce qu'il fait et ce que je veux faire:
Je précise qu'il s'agit de pouvoir saisir des informations concernant des wagons féroviaires (histoire qu'on sache de quoi on parle ici)
Voici mon tableau original: ________
Combien de wagons voulez vous ajouter ? |____4___|
______________________________________________________________________
| | | | | | | |
|_5555_|_________|_______|__________|________|______________|__________|
| | | | | | | |
|_6666_|_________|_______|__________|________|______________|__________|
| | | | | | | |
|_7777_|_________|_______|__________|________|______________|__________|
| | | | | | | |
|_8888_|_________|_______|__________|________|______________|__________|
|Envoyer|
Donc, j'ai un premier champ qui permet d'ajouter des lignes au tableau.
Le tableau dispose de 15 colonnes (mais ça c'était déjà compris).
Lorsque je clique sur "Envoyer", grâce à ton code, la requête est la suivante:
INSERT INTO regionnaux (num_wagon, num1, num2, type, carac_wagon, attache, utilisateur, lieu, point_attach, date_dernier_aff, com_util, proch_vt, proch_rev, obs, tri_etabli,trans_vt,trans_rev,trans_aff) VALUES('77777777','','','','','','','','','','','','','','','','','');
En fait, c'est comme si ton code ne permettait d'importer dans la base de données que l'avant dernière ligne.
Comme je n'ai pas tout saisi à ton code, je n'ai pas réussi à le dépanner.
Peux-tu m'aider à nouveau s'il te plait ?
D'avance merci,
Momo
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 juin 2009 à 14:02
10 juin 2009 à 14:02
Désolé, j'aurais dû commenter le code :
// on boucle sur les lignes du tableau for ( $i=0 ; $i<$ch ; ++$i ) { // on construit la partie fixe de la requête $query = 'INSERT INTO matable (col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15) VALUES('; // on boucle sur les champs for ( $j=15*$i ; $j<15*($i+1) ; ++$j ) { if ( $j != 15*$i ) $query .= ','; // on ajoute une virgule si nécessaire // on récupère la valeur du champ courant dans une variable pour plus de commodité $curvar = $_POST['champ'.$j]; // l'erreur vient probablement d'ici // on ajoute le champ à la requête $query .= "'$curvar'"; } // on termine la requête $query .= ');'; }Le problème vient à mon avis du champ en gras. D'où est-ce que tu récupères les différents champs à insérer, j'ai dû mal comprendre...
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
10 juin 2009 à 14:10
10 juin 2009 à 14:10
Rebonjour !
En fait, le code semble fonctionner, j'ai juste ajouté à la fin:
Mais maintenant, lorsque mon tableau est de la forme:
5555
6666
7777
8888
Il m'importe dans la base de données ceci:
8888
5555
6666
7777
8888
Donc, le premier "8888" n'a pas sa place car il est identique au dernier !
Enfin déjà merci pour ce code qui fonctionne à peu près chez moi malgré mon manque de compréhension !
En fait, le code semble fonctionner, j'ai juste ajouté à la fin:
.... ...... $curvar = $_POST['champ'.$j]; $query .= "'$curvar'"; } $query .= ',\'\',\'\',\'\');'; mysql_query($query,$link) or die ("Impossible d'ajouter le wagon"); }
Mais maintenant, lorsque mon tableau est de la forme:
5555
6666
7777
8888
Il m'importe dans la base de données ceci:
8888
5555
6666
7777
8888
Donc, le premier "8888" n'a pas sa place car il est identique au dernier !
Enfin déjà merci pour ce code qui fonctionne à peu près chez moi malgré mon manque de compréhension !
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 juin 2009 à 14:40
10 juin 2009 à 14:40
Oui, j'avais oublié de lancer la requête >_< !
Par contre, pourquoi rajoutes-tu "$query .= ',\'\',\'\',\'\');';" puisque dans ton VALUES, tu ne spécifies que les quinze champs à ajouter ?
Par contre, pourquoi rajoutes-tu "$query .= ',\'\',\'\',\'\');';" puisque dans ton VALUES, tu ne spécifies que les quinze champs à ajouter ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
10 juin 2009 à 14:31
10 juin 2009 à 14:31
Rerebonjour,
En fait il n'y a aucune erreur dans le code !
En effet, j'avais oublié de supprimer un "mysql_query" à la fin de mon code.
Tout baigne, je te remercier beaucoup pour cette portion de code !
Momo
En fait il n'y a aucune erreur dans le code !
En effet, j'avais oublié de supprimer un "mysql_query" à la fin de mon code.
Tout baigne, je te remercier beaucoup pour cette portion de code !
Momo