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

  FORUM HardWare.fr
  Programmation
  PHP

  enregistrer une select multiple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

enregistrer une select multiple

n°2104873
xzena
Posté le 05-10-2011 à 14:08:12  profilanswer
 

bonjour,
je veux savoir comment faire pour enregistrer ce que je selectionne dans mon select multiple mais en séparant chaque item tout seul ,cad chaque selectionnement s'enregistre dans son propre ligne dans la DB
Ex: j'ai selectionner eleve1,eleve2
je veux avoir dans la DB  deux enregistrements/2 lignes
ligne1 :eleve1
ligne2 :eleve2
c'est claire je pense
merci à vous  :jap:

mood
Publicité
Posté le 05-10-2011 à 14:08:12  profilanswer
 

n°2104878
olivthill
Posté le 05-10-2011 à 14:24:05  profilanswer
 

Le SQL repose sur quatre commandes principales : Select, Insert, Update, et Delete.
 
La commande Insert permet d'insérer une ligne.
Pour avoir n lignes dans la base, il faut faire n insertions.
 
 
N.B. Pour avoir une réponse plus précise, veuillez donner plus de précisions :
 
 - Quelle base de données (Oracle, MySQL, Access, ...)
 - Liste des tables et des champs de ces tables concernées
 - Exemples de données en entrée

n°2104883
rufo
Pas me confondre avec Lycos!
Posté le 05-10-2011 à 14:29:57  profilanswer
 

En Mysql, INSERT INTO... VALUES(...) permet d'insérer plusieurs enregistrements en une seule requête SQL ;) Par contre, pas possible d'avoir les ID après...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2104888
xzena
Posté le 05-10-2011 à 14:43:12  profilanswer
 

ok merci pour votre réponse.
Donc :
DB: MySql
les 2 tables que j'ai içi: table affectation (où je remplie la 'multiple select')
et table reference(où je doit récupérer ce qui est selectionnée)
les 2 tables contiennent le champ 'nom' c'est celui que je remplie et je récupère.
Et pour l'exemple de formulaire voilà ce que j'ai:
 
[php]<select name="nom[]" id="nom"  multiple>
            <option value="" selected >Selectionnez : </option>
            <?php
$respo = mysql_query("SELECT * FROM partenaire ORDER BY nom ASC" );
while($affiche_respo= mysql_fetch_array($respo)){
   echo '<option value="'.$affiche_respo['nom'].' '.$affiche_respo['prenom'].':'.$affiche_respo['c_ordremedecin'].'">'.$affiche_respo['nom'].' '.$affiche_respo['prenom'].'  ('.$affiche_respo['c_ordremedecin'].')</option>';
}
?>
          </select>[/php]
 
d'autre part voilà la requete insert :
[php]$qer = mysql_query('insert into aff(liste,cyc_visite,datetime,region,ville,secteur,nom,nomm,code) values("'.addslashes($_POST['liste']).'","'.addslashes($_POST['cyc_visite']).'","'.addslashes($_POST['datetime']).'","'.addslashes($_POST['region']).'","'.addslashes($_POST['ville']).'","'.addslashes($_POST['secteur']).'","'.addslashes($nomM).'","'.addslashes($_POST['nom']).'","'.addslashes($code3).'" )');[/php]

n°2104903
rufo
Pas me confondre avec Lycos!
Posté le 05-10-2011 à 15:09:37  profilanswer
 

1) le * dans une requête est à éviter.
2) j'aurais tendance à dire que tu ne connais pas la notion de clé primaire, clé étrangère vue la tête de la table "aff"... :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2104937
xzena
Posté le 05-10-2011 à 17:54:12  profilanswer
 
n°2105011
rufo
Pas me confondre avec Lycos!
Posté le 06-10-2011 à 09:55:11  profilanswer
 


Si ton interrogation renvoie à mon point 2) que tu n'as pas compris, c'est que ma supposition se vérifie...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2105050
xzena
Posté le 06-10-2011 à 11:37:14  profilanswer
 

non j'ai compris ce que t'as dit ..mais mes interrogations c'est a propos de solution?? cad : je vais refaire mes tables ou quoi qu'il faut faire  exactement!
merci  :jap:

n°2105060
olivthill
Posté le 06-10-2011 à 11:45:57  profilanswer
 

1. Récupération de la value pour la ligne sélectionnée :

$ligne_sel = ""; if (isset($_POST['nom'])) $ligne_sel = $_POST['nom'];

N.B. au lieu de "nom", il aurait été préférable de choisir un nom moins ambigu pour la listbox.
 
2. Découpage de la ligne sélectionné dans plusieurs champs (parsing). Il existe plusieurs solutions pour cela. Par exemple avec une boucle sur chaque caractère :


$ligne_sel_lg = strlen($ligne_sel);
 
// Le nom est la chaine de caractère avant le premier espace
$nom_sel = "";
for($i = 0; $i < $ligne_sel_lg; $i++) {
  $c = $ligne_sel[$i];
  if ($c == " " ) break;
  $nom_sel .= $c;
}
 
// Le prenom se trouve apres jusqu'au deux points
$prenom_sel = "";
for(; $i < $ligne_sel_lg; $i++) {
  $c = $ligne_sel[$i];
  if ($c == ":" ) break;
  $prenom_sel .= $c;
}


 
3. Insertion :

$qer = mysql_query('insert into table_des_noms(nom,prenom) values("'.$nom_sel.'","'.$prenom_sel.'" )');


Message édité par olivthill le 06-10-2011 à 11:47:29
n°2105079
xzena
Posté le 06-10-2011 à 13:07:20  profilanswer
 

ok merci olivthill, je vais me baser sur ça et je vous tiendrez au courant!

mood
Publicité
Posté le 06-10-2011 à 13:07:20  profilanswer
 

n°2105101
rufo
Pas me confondre avec Lycos!
Posté le 06-10-2011 à 14:40:04  profilanswer
 

Je faisais remarquer que de mettre comme clé étrangère le nom n'est pas une bonne idée : vaudrait mieux mettre un ID (un entier) ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

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

  enregistrer une select multiple

 

Sujets relatifs
Modifier contenu d'une SELECT en liveFichier Excel multiple
Récupérer valeur d'un select en fonction de son idComment récupérer la valeur choisie dans <select> ou <option>?
Besoin d'aide pour un SELECT multitablesComment enregistrer ordre de clic dans des checkbox
Comment ne pas voir un OPTION d'un SELECT ?Récupérer les valeurs de plusieurs select avec javascript
Enregistrer mon jeu javacree une page pdf avec une select de feuil excel
Plus de sujets relatifs à : enregistrer une select multiple


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