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 :

Multiples enregistrements pour un même champs


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut Multiples enregistrements pour un même champs
    Bonsoir j'explique mes souhaits en faite j'ai une première page qui récupéré un nom sélectionné précédement par la méthode POST:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_POST['nom']; ?>
    ensuite sur cette page j'utilise le nom sélectionné en champ caché et l'utilisateur
    remplis le reste du 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
    <form name="insertion" action="insertion_garde.php" method="POST">
    <input type="hidden" name="id" value="<?php echo $id_gardespv; ?>" />
    <input type="hidden" name="statut" value="<?php echo $statut; ?>" />
    <input type="hidden" name="nom" value="<?php echo $_POST['nom']; ?>">
    <table width="532" border="1">
      <tr>
        <td><div align="center">Date</div></td>
        <td><div align="center">Horaire</div></td>
        <td><div align="center">Valide</div></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td width="158"><input type="text" size="2" name="jour"/>
          /
            <input type="text" size="2" name="mois"/>
            /
          <input type="text" size="4" name="an" value="<?php echo $year; ?>"/></td>
        <td width="144"><input type="text" name="horaire" /></td>
        <td width="115"><div align="center">
          <select name="valide">
            <option value="">En attente</option>
            <option value="oui">Accepté</option>
            <option value="annulé">Annulé</option>
          </select>
        </div></td>
        <td width="87"><div align="center">
          <input type="submit" value="insérer" />
    et ainsi lorsque qu'il clique sur insérer cela me lance la page php qui me permet de rentrer les données saisies dans la base :

    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
    42
    43
    44
    <?php
    include("haut.php");
    include("config.php");
     
    $jour = htmlspecialchars($_POST['jour']);
        $mois = htmlspecialchars($_POST['mois']);
        $an = htmlspecialchars($_POST['an']);
        $date = ($an."-".$mois."-".$jour);
     
      //connection au serveur
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //sélection de la base de données:
      $db  = mysql_select_db( "grh" ) ;
     
      //récupération des valeurs des champs:
      $id     = $_POST["id"] ;
      $statut     = $_POST["statut"] ;
     
      $nom     = $_POST["nom"] ;
     
      $date = ($an."-".$mois."-".$jour);
     
      $horaire = $_POST["horaire"] ;
     
      $valide = $_POST["valide"] ;
     
     
      //création de la requête SQL:
      $sql = "INSERT  INTO gardespv VALUES ('', '" . $statut . "', '" . $nom . "', '" . $date . "', '" . $horaire . "', '" . $valide . "') " ;
     
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
      //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
      {
        echo("L'insertion a été correctement effectuée") ; 
      }
      else
      {
        echo("L'insertion à échouée") ;
      }
    ?>
    Et je souhaiterais donc que l'utilisateur après avoir sélectionné le nom et effectué un premier enregistrement en validant le formulaire soit rediriger à nouveau vers le meme formulaire pour effectué un nouvel enregistrement tous en gardant dans le $_POST['nom'] le nom de la meme personne choisis au début !

    je pense que cela doit ce faire sur la derniére page et ici en particulier mais je ne sais comment, merçi pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
      {
        echo("L'insertion a été correctement effectuée") ;

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Si ca peut te convenir, tu peux le faire en GET comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     echo("L'insertion a été correctement effectuée") ;
     header("Location: ton_formulaire.php?nom=".urlencode($_POST['nom']));
     exit();
    La fonction header dans ce cas, permet d'aller chercher une autre url à afficher.
    La fonction urlencode permet d'encoder la variable pour qu'elle puisse transiter via des flux http.

    Pour lire ta variable ensuite tu peux faire;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['nom'])){
      $_POST['nom']=urldecode($_GET['nom']);
    }

  3. #3
    Membre chevronné
    Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Par défaut
    Si le GET ne te convient, tu peux toujours stocker en session ta variable POST puis n'utiliser que la session par la suite.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Donc si j'ai bien compris dans mon formulaire (rediger_garde_desirata.php) ou je récupéré le nom, je dois avoir ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="hidden" name="nom" value="<?php if(isset($_GET['nom'])){
      $_POST['nom']=urldecode($_GET['nom']);
    } ?>">
    Et ensuite sur la page d'enregistrement (insertion_garde.php) je dois avoir ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     if($requete)
      {
        echo("L'insertion a été correctement effectuée")  header("Location: rediger_garde_desirata.php?nom=".urlencode($_POST['nom']));
     exit();
      }
      else
      {
        echo("L'insertion à échouée") ;
      }
    Mais le probléme c'est que j'obtient ce message d'erreur aprés avoir cliqué sur insérer :


    Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in c:\program files\easyphp1-7\www\gestrh\insertion_garde.php on line 47

    et voila la ligne 47 :

    echo("L'insertion a été correctement effectuée") header("Location: rediger_garde_desirata.php?nom=".urlencode($_POST['nom']));
    exit();

  5. #5
    Membre chevronné Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Par défaut
    Il te manque un ";" aprés le echo

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    OK merçi ca fonctionne a part que maintenant, aucun nom se sauvegarde dans la base de donnée, je pense que le problème vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="hidden" name="nom" value="<?php if(isset($_GET['nom'])){
      $_POST['nom']=urldecode($_GET['nom']);
    } ?>">

Discussions similaires

  1. [MySQL] insérer plusieurs valeurs pour le même champ
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/03/2008, 13h41
  2. MCD->MPD : deux clés étrangères pour le même champ
    Par Eric2000 dans le forum Schéma
    Réponses: 3
    Dernier message: 04/09/2007, 00h44
  3. Réponses: 7
    Dernier message: 13/12/2006, 12h57
  4. Plusieurs valeurs pour un même champ
    Par will89 dans le forum Requêtes
    Réponses: 32
    Dernier message: 14/06/2006, 10h06
  5. Etat : plusieurs enregistrements pour un meme champ
    Par b_steph_2 dans le forum Access
    Réponses: 21
    Dernier message: 02/02/2006, 12h21

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