Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1164 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupération de plusieurs textarea

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupération de plusieurs textarea

n°1859614
antitrust5​6
Posté le 09-03-2009 à 23:31:29  profilanswer
 

Bonjour,
 
 
Je souhaite récupérer 4 textarea exactement et insérer chaque ligne saisit de chaque textarea dans une table SQL.
 
Je récupère mes variables définit dans mon formulaire pour ensuite utiliser la fonction explode pour détecter les retours à la ligne.
 
Mon problème est que je n'arrive pas à grouper mes tableaux en un seul pour l'insérer ligne par ligne dans ma table.  
 
J'essaye de développer un outil qui prend un chiffre au hasard de 1 à 50 pour afficher une valeur saisie par l'utilisateur au hasard dans chaque textarea.
 
 

Code :
  1. if (isset($_GET['valid'])) {
  2. $champ_form1 = $_POST['champ1'];
  3. $champ_form2 = $_POST['champ2'];
  4. $champ_form3 = $_POST['champ3'];
  5. $champ_form4 = $_POST['champ4'];
  6. $champ_formulaire1 = explode("\n",$champ_form1);
  7. $champ_formulaire2 = explode("\n",$champ_form2);
  8. $champ_formulaire3 = explode("\n",$champ_form3);
  9. $champ_formulaire4 = explode("\n",$champ_form4);
  10. foreach ($champ_formulaire1 as $value) {
  11. $req="INSERT INTO description(id_description, texte1_description, id_site) Values('','$value','$site')";
  12. mysql_query ($req);
  13. }
  14. foreach ($champ_formulaire2 as $value) {
  15. $req="INSERT INTO description(id_description, texte2_description, id_site) Values('','$value','$site')";
  16. mysql_query ($req);
  17. }
  18. }
  19. ....


 
 
Merci pour votre aide,
 
José

mood
Publicité
Posté le 09-03-2009 à 23:31:29  profilanswer
 

n°1859619
esox_ch
Posté le 09-03-2009 à 23:37:07  profilanswer
 

Salut,
 
Tu veux nous donner ce que ça t'affiches si tu rajoutes print_r($champ_formulaire1); (et pareil pour le 2,3 4) avant tes foreach?  
Et éventuellement changer le mysql_query($req) par mysql_query($req) or die(mysql_error());  


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1859623
antitrust5​6
Posté le 09-03-2009 à 23:50:04  profilanswer
 

Voici ce que les print_r($champ_formulaire1) m'affiche pour chaque formulaire.
 
Array ( [0] => Titre de page 1 [1] => Titre de page 2 [2] => Titre de page 3 ) Array ( [0] => Description 1 [1] => Description 2 [2] => Description 3 ) Array ( [0] => ) Array ( [0] => )
 
Pour l'erreur SQL, j'ai "Duplicate entry '0' for key 1".
 
En fait, récupérer un tableau n'est pas en soit très compliqué mais lorsqu'il s'agit d'en regrouper plusieurs pour insérer des saisies sur chaque ligne d'une table sql, c'est autre chose. :)


Message édité par antitrust56 le 09-03-2009 à 23:54:48
n°1859624
esox_ch
Posté le 09-03-2009 à 23:54:16  profilanswer
 

Bein l'erreur SQL t'explique pourquoi,
Tu essaies d'entrer 2 fois une ligne qui contient une donnée identique sur un champs que tu as défini comme étant unique


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1859627
antitrust5​6
Posté le 09-03-2009 à 23:55:33  profilanswer
 

Il faudrait que j'enlève la clé primaire sur mon 1er champs ?

n°1859629
antitrust5​6
Posté le 10-03-2009 à 00:03:01  profilanswer
 

Oui, nikel esox_ch.
 
Sauf que j'ai encore un soucis,
 
Il y a un décalage lors de l'insertion des données.
 
Par exemple, titre de page 1, 2 et 3 s'affiche sur les 3 premières lignes de ma table et le reste suis en dessous.
 
Ce que je voudrais, c'est insérer mes données sur une seule et même ligne dans ma table.


Message édité par antitrust56 le 10-03-2009 à 00:03:20
n°1859633
antitrust5​6
Posté le 10-03-2009 à 00:36:16  profilanswer
 

Voici le code modifié afin que vous y voyez plus clair.
 
J'utilise la fonction array_merge pour grouper mes tableaux mais je voudrais savoir comment les décomposer une fois qu'ils sont assemblés.
 
 

Code :
  1. if (isset($_GET['valid'])) {
  2. $champ_form1 = $_POST['champ1'];
  3. $champ_form2 = $_POST['champ2'];
  4. $champ_form3 = $_POST['champ3'];
  5. $champ_form4 = $_POST['champ4'];
  6. $champ_formulaire1 = explode("\n",$champ_form1);
  7. $champ_formulaire2 = explode("\n",$champ_form2);
  8. $champ_formulaire3 = explode("\n",$champ_form3);
  9. $champ_formulaire4 = explode("\n",$champ_form4);
  10. $array3 = array_merge($champ_formulaire1, $champ_formulaire2, $champ_formulaire3, $champ_formulaire4);
  11. foreach ($array3 as $value) {
  12. $req="INSERT INTO description(id_description, texte1_description, texte2_description, texte3_description, texte4_description, id_site) Values('','$value','$value','$value','$value','$site')";
  13. mysql_query($req) or die(mysql_error()); 
  14. }
  15. }

n°1859785
macgawel
Posté le 10-03-2009 à 13:26:55  profilanswer
 

Bonjour.
 
Est-ce que tu peux donner un exemple, avec le contenu de 4 textarea et ce que tu veux avoir dans la base ?
Parce que là, je ne comprends pas trop...

antitrust56 a écrit :


J'essaye de développer un outil qui prend un chiffre au hasard de 1 à 50 pour afficher une valeur saisie par l'utilisateur au hasard dans chaque textarea.

Et après, si tu peux m'expliquer le rapport entre les deux  :??:

n°1859964
antitrust5​6
Posté le 10-03-2009 à 18:28:07  profilanswer
 

Merci pour ta réponse, je vais essayer de m'expliquer plus clairement.
J'ai une table "description" qui est composé de 4 champs : id_description, texte1_description, texte2_description, texte3_description, texte4_description et id_site.
 
L'utilisateur saisit x mots dans 4 textarea exactement et valide le formulaire.
 
Ce que je souhaite, c'est récupérer ces valeurs sous forme de tableau (c'est déjà fait) et mon problème vient de l'insertion des données dans ma table.
 
J'ai un décalage lors de l'insertion des données dans ma table sql.
 
Exemple :
Trois lignes distincts pour titre 1, titre 2, titre 3, c'est ce que je veux.
Et en dessous trois autre ligne pour description 1, description 2, description 3.
 
Je voudrais qu'il n'y ai pas de décalage lors de l'insertion.

n°1860221
macgawel
Posté le 11-03-2009 à 11:09:18  profilanswer
 

antitrust56 a écrit :

Merci pour ta réponse, je vais essayer de m'expliquer plus clairement.
J'ai une table "description" qui est composé de 4 champs : id_description, texte1_description, texte2_description, texte3_description, texte4_description et id_site.

Ca commence mal  :pfff:  
Le jour où tu veux/on te demande de rajouter un champ, tu fais comment ?
Ou, le jour où tu veux chercher les enregistrements de ta tables pour lesquels un des champs "texte#_description" contient "toto" ?
A priori une table de ce genre irait mieux :

[u]Description :[/u]
Id_description (PK)
Id_ligne (PK)
texte_description


Au lieu d'avoir

1,"toto", "tata", "tutu", "titi"

tu mets

1,1,"toto"
1,2,"tata"
1,3,"tutu"
1,4,"titi"


 

Citation :

L'utilisateur saisit x mots dans 4 textarea exactement et valide le formulaire.
Ce que je souhaite, c'est récupérer ces valeurs sous forme de tableau (c'est déjà fait) et mon problème vient de l'insertion des données dans ma table.
J'ai un décalage lors de l'insertion des données dans ma table sql.
Exemple :
Trois lignes distincts pour titre 1, titre 2, titre 3, c'est ce que je veux.
Et en dessous trois autre ligne pour description 1, description 2, description 3.
Je voudrais qu'il n'y ai pas de décalage lors de l'insertion.


Et là, c'est peut-être que je suis bouché, mais je ne comprends plus  :sweat:  
Quand je parle d'exemple, c'est plus de ce genre :
Textarea1

ligne1.1
ligne1.2
ligne1.3
ligne1.4

Textarea2

ligne2.1
ligne2.2
ligne2.3
ligne2.4

...
Résultat souhaité dans la table  :

1, "ligne1.1", "ligne1.2", "ligne1.3", ligne1.4"

etc.

mood
Publicité
Posté le 11-03-2009 à 11:09:18  profilanswer
 

n°1860290
antitrust5​6
Posté le 11-03-2009 à 13:23:12  profilanswer
 

C'est noté Macgawel, je modifierais ma table.
 
Je débute encore en php et j'apprends tous les jours.
 
Le résultat que je souhaite obtenir dans ma table est du type :

Code :
  1. ligne1.1, ligne2.1, ligne3.1, ligne4.1


et ainsi de suite.


Message édité par antitrust56 le 11-03-2009 à 19:15:42

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupération de plusieurs textarea

 

Sujets relatifs
[débutant] Récupération de valeur dans un fichier texteChanger un textarea a partir d une liste deroulante
Noob inside, SELECT plusieurs dates en 1 fois[C] executer plusieurs boucles en meme temps
[Shell] : récupération de variable via awkplusieurs fichier xsd
[nxtOSEK] Comment connecter plusieurs Bricks NXT en Bluetooth[Access] Regrouper plusieurs résultats d'1 requête sur 1 seule ligne?
Faire correspondre du code PHP aux lignes d'un textareaValeur à un champs de plusieurs lignes
Plus de sujets relatifs à : Récupération de plusieurs textarea


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR