Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/09/2007, 10h54   #1
Invité régulier
 
Inscription : février 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 16
Points : 6
Points : 6
Par défaut Insertion de données via un tableau

Bonjour,

Jusqu'à présent j'ai toujour travaillé essentiellement avec le couple php/ Oracle dans le cadre d'un intranet (consultation de données ciblées, stats, jpgraph, etc)

Je dois désormais mettre en place un module supplémentaire pour la gestion des litiges. Le principe est le suivant:

1) l'utilisateur saisi sur la page litige_base.php le numéro de la commande (qui se trouve dans la base Oracle) pour laquelle il doit ouvrir un dossier de litige.

2) On affiche sur la page litige_intermed.php la ou les lignes de vente qui correspondent à la commande passée en paramètre (voir l'image jointe)



3) Sur la page en question l'utilisateur coche la ou les lignes litigieuses.


Problème : Je souhaite insérer la ou les lignes cochée(s) dans une base mysql.

Questions :

- Comment faire pour que seule la ligne cochée soit insérée dans ma base.
- Comment faire pour insérer plusieurs lignes en même temps.

Merci beaucoup pour toute aide
Arkadius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 11h51   #2
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
bonjour,

En partant du postulat que chaque ligne de commande possède un id, tu donnes à chaque élément du formulaire un nom de tableau indicé par l'id de la ligne.
Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
 
<select name="uv[idligne]">
</select>
<input type="text" name="poids[idligne]" />
<input type="text" name="colis[idligne]" />
<input type="text" name="qte[idligne]" />
<input type="text" name="prix[idligne]" />
<select name="nature[idligne]">
</select>
<input type="checkbox" name="chk[]" value="idligne" />
'idligne' est évidemment à remplacer par la valeur de l'id.

Ensuite, pour récupérer :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
  if (isset($_POST['chk']))
  {
    $ligne = array();
    foreach ($_POST['chk'] as $valeur)
    {
      $ligne[] = '(' . 
                  $_POST['uv'][$valeur] . ',' . 
                  $_POST['poids'][$valeur] . ',' . 
                  $_POST['colis'][$valeur] . ',' . 
                  $_POST['qte'][$valeur] . ',' . 
                  $_POST['prix'][$valeur] . ',' . 
                  $_POST['nature'][$valeur] . ')';
    }
    $valeur = implode(',', $ligne);
    $sql = 'insert into laTable (uv, poids, colis, qte, prix, nature)
            values ' . $valeur;
  }
?>
Et si tu as 10 lignes, il n'y aura qu'une seule requête d'insertion.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 12h00   #3
Invité régulier
 
Inscription : février 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 16
Points : 6
Points : 6
Merci bien,


chaque ligne de commande possède effectivement son id (heureusement ) je le récupère même déjà dans mon select, je tente tout de suite ta solution et te tiendrai au cournat .

A très bientôt
Arkadius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 15h32   #4
Invité régulier
 
Inscription : février 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 16
Points : 6
Points : 6
Bon , je suis vraiment navré mais je sèche:

voici le code de mon formulaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
 
while($entete=each($results2)) // Boucle pour la récupération des lignes de la commande et la construction du tableau visible sur l'image ci-dessus 
  {
 
 
  $lot=($entete[1]['LOT']); //lot =id_ligne
  $uv=($entete[1]['UNITE_VE']);
  $depot=($entete[1]['DEPOT']);
  $article=($entete[1]['ARTICLE']);
  $emballage=($entete[1]['EMBALLAGE']);
  $poids=($entete[1]['POIDS']);
  $colis=($entete[1]['COLIS']);
  $quantite=($entete[1]['QUANTITE']);
  $prix=($entete[1]['PRIX']);
 
 
 
echo"
 		<tr>
 
 
			 	<td class=petit align=left valign=top width=5%><INPUT type=text size=5% readonly Name=\"depot['.$lot.']\" value=\"$depot\"></td>
				<td class=petit align=left valign=top width=25%><INPUT type=text size=35% readonly Name=\"article['.$lot.']\" value=\"$article\"></td>
				<td class=petit align=left valign=top width=20%><INPUT type=text size=30% readonly Name=\"emballage['.$lot.']\" value=\"$emballage\"></td>
				<td class=petit align=left valign=top width=5%>
                                	<select Name=\"uv['.$lot.']\">
                                		<option value=\"$uv\">$uv
                                		<option value=\"\">
                                		<option value=\"N\">N
  						<option value=\"C\">C
  						<option value=\"P\">P
  					</select>
                                </td>
			 	<td class=petit align=left valign=top width=5%><INPUT Name=\"poids['.$lot.']\" size=5% value=\"$poids\"></td>
				<td class=petit align=left valign=top width=5%><INPUT Name=\"colis['.$lot.']\" size=5% value=$colis></td>
				<td class=petit align=left valign=top width=5%><INPUT Name=\"quantite['.$lot.']\" size=5% value=$quantite></td>
				<td class=petit align=left valign=top width=5%><INPUT Name=\"prix_saisi['.$lot.']\" size=5% value=$prix></td>
 
   			      <td><input type=\"checkbox\" name=\"chk[]\" value=\"$lot\"></td>
			</tr>

Merci beaucoup
Arkadius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 16h20   #5
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Donnes plutôt les sources du formulaire généré (affichage des sources de la page, dans le navigateur). Pour le reste, on verra après.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 16h35   #6
Invité régulier
 
Inscription : février 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 16
Points : 6
Points : 6
c'est bon, un collegue sur le forum de Neolan m'a aidé.

Je bloquais sur un problème de syntaxe avec les doubles guillemets


Exemple
Code :
1
2
3
 
 
Name=\"article['.$lot.']\"
remplacé par

Code :
Name=\"article[".$lot."]\"

Merci beaucoup pour ton aide... ta méthode fonctionne parfaitement
Arkadius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h39.


 
 
 
 
Partenaires

Hébergement Web