PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-08-2013 18:02:01

PandadeMios
Membre
Inscription : 01-06-2013
Messages : 15

faire plusieurs enregistrements sur une table

Bonsoir à tous,;)

J'affiche une liste de nom et prénom dans un formulaire avec des cases à cocher suite à une requête SQL.

comme ceci:


while($row1 = mysql_fetch_array($req1))
    {
    echo '<tr align="center" valign="bottom" >
      <input type="checkbox" name="options[]" value="'.$row1['titre'].' '.$row1['prenom'].' '.$row1['nom'].'" />
      '.$row1['titre'].'
      '.$row1['prenom'].'
      '.$row1['nom'].'
      </tr><br />';
    }
 

Et la je bloque pour créer la requête sql
J'aimerais que si mon visiteur coche plusieurs cases et clique sur valider, cela enregistre plusieurs lignes sur ma table SQL, 1 ligne par nom.

Merci pour votre smile

Hors ligne

#2 28-08-2013 18:09:38

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : faire plusieurs enregistrements sur une table

Saluton,

Et alors, qu'est-ce qui te bloques, tu ne sais pas comment récupérer les infos pour faire un INSERT multiple ? tu ne sais pas faire un INSERT multiple ?
Bref, si tu veux de l'aide il te faut commencer par nous expliquer ce qui te bloque.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 28-08-2013 18:46:17

PandadeMios
Membre
Inscription : 01-06-2013
Messages : 15

Re : faire plusieurs enregistrements sur une table

bonsoir Maljuna Kris,

Faire un formulaire avec insertion sur une table ça je sais.

Effectivement un INSERT multiple je sais pas, il faut prendre en compte un IMPLODE dans la requête + la valeur d'un INPUT (prestation) commune à tous

j'aimerai un insert un peu comme ça:

colonne de la table  | nom_prenom | prestation |

ligne 1 :                    tintin dupont     sortie 1
ligne 2 :                    milou dupont     sortie 1
ligne 3 :                   michel dupont     sortie 1

j’espère avoir été assez clair

Merci de ton aide

Hors ligne

#4 28-08-2013 19:53:24

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : faire plusieurs enregistrements sur une table

Si tu regardes la doc MySQL tu verras que la syntaxe d'un INSERT multiple est "sous-entendue"

MySQL a écrit :

INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...

tu dois d'abord citer les noms de colonnes entre deux parenthèses chaque nom séparé par une virgule puis les valeurs (VALUES) des colonnes de chaque ligne entre parenthèses séparées par des virgules chaque groupe de valeurs parenthésé séparé lui-même du suivant par une virgule.
A toi de voir comment construire cette requête en PHP.
Ce qui me gêne un peu dans ton exemple c'est que je ne vois pas d'identifiant, y-a-t-il un autoincrement dans la table ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 28-08-2013 20:38:14

PandadeMios
Membre
Inscription : 01-06-2013
Messages : 15

Re : faire plusieurs enregistrements sur une table

oui bien sur j'ai une colonne autoincrement en première colonne

je continue à chercher wink

Hors ligne

#6 31-08-2013 08:54:37

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : faire plusieurs enregistrements sur une table

Salut,

C que veux dire MK c'est que c'est :
- tu peux faire une seule requête pour insérer plusieurs lignes dans une table (spécifique mysql)
- tu doit utiliser la clef primaire de ta table pour la sauvegarde des données.

Côté html cela commence par mettre en value des checkbox la clef primaire de la table (qui généralement est auto incrémenté).
Une clef primaire c'est une référence unique pour une ligne de table elle est donc la chose a utiliser lorsque l'on veux désigner une ligne en particulier.

Côté SGBD (mysql dans ton cas), afin d'avoir un modèle relationnel correct on va créer une table qui va contenir la référence vers la table "des gens" ainsi que la références vers la table qui représente ceux qui coche les cases.
Ensuite il te "suffit" d'insérer ces deux références dans la table pour sauvegarder l'information.

Pour réafficher l'info il faut faire une jointure sur les tables.

Si tu explique le but de la chose (comment tu identifie les gens qui coche les cases je peux te faire un exemple plus concret).

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums