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

Langage PHP Discussion :

Récupérer les valeurs de mon tableau


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut Récupérer les valeurs de mon tableau
    Bonjour à tous,

    Je créé les lignes de mon tableau avec un for. Par contre je voudrais récupérer les valeurs sur la page suivante en post, mais je récupère que la dernière ligne et pas les deux. Comment faire ?

    Merci d'avance

    Page du tableau
    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
     
    <?php
    for ($n=0; $n<2; $n++) 
        {
    ?>
        <tr align="center">
            <td><input style="text" id ="date_paiement" name="date_paiement" size="12" value="<?php echo $date_fact; ?>"></td>
            <td><input style="text" name="montant_paiement" size="10" value="80"></td>
            <td><select name="type_paiement">
                <?php
                    $sql_moyen = 'SELECT * FROM moyen_paiements'; 
                    $req_moyen = mysql_query($sql_moyen) or die('Erreur SQL !<br>'.$sql_moyen.'<br>'.mysql_error());
                    while($moyen = mysql_fetch_assoc($req_moyen))
                    {
                        echo "<option value='".utf8_encode($moyen['id_moyen_paiements'])."'>".utf8_encode($moyen['nom_moyen_paiements'])."</option>";
     
                    }
                ?>
            </select></td>
            <td><input style="text" name="domiciliation_paiement" size="15" value=""></td>
            <td><input style="text" name="numero_paiement" size="10" value=""></td>     
        </tr>
    <?php
        }
    ?>
    Page de traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $date_paiement = stripslashes($_POST['date_paiement']);
    $montant_paiement = stripslashes($_POST['montant_paiement']);
    $type_paiement = stripslashes($_POST['type_paiement']);
    $domiciliation_paiement = stripslashes($_POST['domiciliation_paiement']);
    $numero_paiement = stripslashes($_POST['numero_paiement']);
    $id_fact = stripslashes($_POST['id_fact']);
     
    $req_inscription = 'INSERT INTO paiements (date_paiements, montant_paiements, type_paiements, domiciliation_paiements, numero_paiements, id_facture_paiements, etat_paiements) VALUES ("'.$date_paiement.'", "'.$montant_paiement.'", "'.$type_paiement.'", "'.$domiciliation_paiement.'", "'.$numero_paiement.'", "'.$id_fact.'", "0")';
    $res_inscription = mysql_query($req_inscription)or die(mysql_error());

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - spécifie correctement l'encodage au lieu d'utiliser utf8_encode
    2 - ça ne sert à rien de faire deux fois la requête, il faut donc la sortir de la boucle
    3 - utilise une notation
    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
    <?php
    mysql_set_charset('utf8');
    $sql_moyen = 'SELECT * FROM moyen_paiements'; 
    $req_moyen = mysql_query($sql_moyen);
                    while($moyen = mysql_fetch_assoc($req_moyen))
                    {
                        $options .= '<option value="'.$moyen['id_moyen_paiements'].'">". htmlentities($moyen['nom_moyen_paiements'])."</option>";
     
                    }
    
    
    for ($n=0; $n<2; $n++) 
        {
    echo '<tr align="center">
            <td><input style="text" id ="date_paiement" name="date_paiement[' .$n . ']" size="12" value="' . $date_fact . '"></td>
            <td><input style="text" name="montant_paiement[' . $n . ']" size="10" value="80"></td>
            <td><select name="type_paiement['. $n .']">
                 <?php echo $options ?>
            </select></td>
            <td><input style="text" name="domiciliation_paiement['. $n .']" size="15" value=""></td>
            <td><input style="text" name="numero_paiement['. $n .']" size="10" value=""></td>     
        </tr>':
    }
    ?>
    et après on parcours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach ($id_fact as $key=>$value) {
        $date_paiement = mysql_real_escape_string($_POST['date_paiement'][$key]);
        $montant_paiement = mysql_real_escape_string($_POST['montant_paiement'][$key]);
        etc.
    Et abandonnes tes stripslashes(), si tu as des \ en trop, désactive les magic_quotes sur ton serveur.
    Par contre, utilise mysql_real_escape_string() pour protéger tes données.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Merci beaucoup de tes renseignements et surtout de ton aide.

    Mais derrière je ne récupère pas mes données dans la boucle foreach ? Il me dit qu'il ne connait pas la variable id_fact.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Voici le code où j'ai enlevé la requete de la boucle :
    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
     
    for ($n=0; $n<2; $n++) 
    		{
    		echo "
    		<tr align='center'>
    			<td><input style='text' id ='date_paiement' name='date_paiement[".$n."]' size='12' value='".$date_fact."'></td>
    			<td><input style='text' name='montant_paiement[".$n."]' size='10' value='80'></td>
    			<td><select name='type_paiement[".$n."]'>
    				".$options."
    				</select>
    			</td>
    			<td><input style='text' name='domiciliation_paiement[".$n."]' size='15' value=''></td>
    			<td><input style='text' name='numero_paiement[".$n."]' size='10' value=''></td>     
    		</tr>
    		";
    		}
    Et de l'autre coté c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    foreach ($id_fact as $key=>$value)
    	{	
        $date_paiement = mysql_real_escape_string($_POST['date_paiement'][$key]);
        $montant_paiement = mysql_real_escape_string($_POST['montant_paiement'][$key]);
    	$type_paiement = mysql_real_escape_string($_POST['type_paiement'][$key]);
    	$domiciliation_paiement = mysql_real_escape_string($_POST['domiciliation_paiement'][$key]);
    	$numero_paiement = mysql_real_escape_string($_POST['numero_paiement'][$key]);
    	$id_fact = mysql_real_escape_string($_POST['id_fact']);
     
    	$req_inscription = 'INSERT INTO paiements (date_paiements, montant_paiements, type_paiements, domiciliation_paiements, numero_paiements, id_facture_paiements, etat_paiements) VALUES ("'.$date_paiement.'", "'.$montant_paiement.'", "'.$type_paiement.'", "'.$domiciliation_paiement.'", "'.$numero_paiement.'", "'.$id_fact.'", "0")';
     
    	$res_inscription = mysql_query($req_inscription)or die(mysql_error());
    	}

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    Bonjour,
    tu peux faire une boucle sur n'importe quel tableau de ton formulaire
    puisque le seul but est de récupérer $key
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($_POST['date_paiement'] as $key=>$value)
    	{	
        $date_paiement = mysql_real_escape_string($_POST['date_paiement'][$key]);
    $moi= ( !== ) ? : ;

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Points : 84
    Points
    84
    Par défaut
    Mais justement je récupere pas la key !!!

    J'ai comme erreur :
    Invalid argument supplied for foreach()

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2012, 09h38
  2. Récupérer les valeurs d'un tableau
    Par fermat dans le forum Débuter
    Réponses: 3
    Dernier message: 02/02/2012, 14h17
  3. [PostgreSQL] Récupérer les valeurs d'un tableau
    Par Grotoumaigr dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/01/2012, 09h37
  4. récupérer les valeurs de mon grid aprés édition
    Par renardchan dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 22/06/2011, 23h10
  5. Récupérer les valeurs dans un tableau
    Par ssxjim dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/01/2011, 20h49

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