IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Insertion de données via un tableau [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 16
    Points : 12
    Points
    12
    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

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    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

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bon , je suis vraiment navré mais je sèche:

    voici le code de mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    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.

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Name=\"article['.$lot.']\"
    remplacé par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name=\"article[".$lot."]\"

    Merci beaucoup pour ton aide... ta méthode fonctionne parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Insertion de données dans un tableau via textBox
    Par toushusss dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/05/2011, 16h24
  2. Réponses: 2
    Dernier message: 08/07/2009, 13h19
  3. Réponses: 2
    Dernier message: 09/10/2008, 09h07
  4. [MySQL] Insertion de données via un tableau
    Par Telecaster dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2008, 23h50
  5. [MySQL] Insertion de donnée dans un tableau array
    Par guigui69 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/06/2008, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo