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 :

garder une valeur en memoire et la reutiliser par la suite [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 18
    Points
    18
    Par défaut garder une valeur en memoire et la reutiliser par la suite
    Bonjour

    J'ai actuellement deux pages dans lesquelles il y a des valeurs que j'aimerai inscrire dans ma base de données
    Dans la première page j'ai donc essayé d'inscrire les deux valeurs dans des variables pour ensuite les réinjecter dans ma base mais sans succès (en fait il garde valeur1 pour niveau et valeur2 pour categorie)
    Pourriez vous m'aider ?
    Merci


    Ma premiere page
    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
    <html>
     
    <body>
    <br>
    <br>
    <center><b>Saisie d'une Intervention nécessitant une immobilisation</b></center>
    </body>
    <br>
    <br>
    <br>
     
    <center>
     
     
     
    <select name="niveau" size="1">
    <option value="General"> General  </option>
    <option value="Localisé">  Localisé  </option>
    </select>
    <br>
    <br>
    <br>
    <br>
    <br><select name="categorie" size="1">
    <option value="Service"> Service </option>
    <option value="Testo France"> Testo France </option>
    <option value="Forbach"> Forbach </option>
    <option value="Paris"> Paris </option>
    <option value="TCI"> TCI </option>
    </select>
    <br>
    <br>
    <br>
    <?php
    valeur1="$niveau";
    valeur2="$categorie";
    ?>
    <br>
    <br>
    <br><center><a href="panne_suivante.html">Suivant</a></center>
     
    </center>
    </form>
    </html>
    Ma seconde page
    Code html : 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
    <html>
    <form method="POST" action="panne.php">
    <body>
     
     
    <br>
    <br><input type="text" name="nom" size="20" value="Nom de POste" maxlength="35">
    <br>
    <br><input type="text" name="date_debut" size="20" value="Date de Debut" maxlength="11">
    <br>
    <br><input type="text" name="date_fin" size="20" value="Date de Fin" maxlength="70">
    <br>
    <br><input type="text" name="solution" size="20" value="Solution" maxlength="70"> 
    <br>
    <br><input type="text" name="duree" size="20" value="Durée" maxlength="70"> 
    <br>
    <br><input type="submit" value="Envoyer" name="envoyer">
     
    </form>
    </body>
     
    </html>

    Ma page panne.php
    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
    <?php 
    // On commence par récupérer les champs 
     
    $niveau="valeur1";
    $categorie="valeur2";
     
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['date_debut']))      $date_debut=$_POST['date_debut'];
    else      $date_debut="";
     
    if(isset($_POST['date_fin']))      $date_fin=$_POST['date_fin'];
    else      $date_fin="";
     
    if(isset($_POST['solution']))      $solution=$_POST['solution'];
    else      $solution="";
     
    if(isset($_POST['duree']))      $duree=$_POST['duree'];
    else      $duree="";
     
     
     
    { 
           // connexion à la base
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error()); 
     
        // on écrit la requête sql 
        $sql = "INSERT INTO panne(niveau, categorie, nom, date_debut, date_fin, solution, duree) VALUES('$niveau','$categorie','$nom','$date_debut','$date_fin','$solution','$duree')"; 
        // on insère les informations du formulaire dans la table 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        // on affiche le résultat pour le visiteur 
        echo 'Vos infos on été ajoutées.'; 
     
        mysql_close();  // on ferme la connexion 
        }  
    ?>

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 136
    Points : 133
    Points
    133
    Par défaut
    slt,
    euh, comprends pas le pb. C'est tout à fait logique non ?
    <?php
    // On commence par récupérer les champs

    $niveau="valeur1";
    $categorie="valeur2";
    ?>

    pour commencer, dans la première page, il y a une erreur : je vois une fermeture de balises "</form>" pourtant elle n'a été ouverte nulle part.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Oui je sais que c'est logique mais ca marche pas

    J'ai valeur1 et valeur2 a la place des mes valeurs de "categorie" et "niveau"

  4. #4
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    Première page :
    • tu fermes la balises "body" à la ligne 7 (au passage y a pas de "head"...)
    • tu ouvres pas de balise "form"
    • valeur1="$niveau"; $niveau n'est pas défini et valeur1 c'est quoi ?
      je pense que tu voulais récupérer la valeur sélectionnée dans la liste, si c'est le cas, ça se fera après validation du formulaire, donc sur la page qu'il appelle (ou sinon en JavaScript mais beurk...)
      là apparemment tu valides pas le formulaire, t'as un lien "suivant", en gros ton formulaire n'est pas pris en compte


    Première page :
    • toujours pas de "head"
    • tu ouvres "body" après "form"...


    panne.php :
    comme l'a dit sympho, c'est normal ton truc
    tu déclares 2 variables
    tu leur affectes respectivement les valeurs "valeur1" et "valeur2"
    puis tu écris le contenu des tes variables en BdD
    alors forcément, ça t'écris "valeur1" et "valeur2"



    lire quelques tutos sur les formulaires ne serait pas superflu à mon avis

    bonne continuation

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Bonjour

    Suivant vos conseils , j'ai modifier ma premiere page mais je ne sais pas si cela est juste.
    Cependant je ne sais pas (j'ai regardé les tutos) comment injecter mes valeurs de la page1 dans ma bdd
    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
    html>
     
    <body>
    <br>
    <br>
    <center><b>Saisie d une Intervention nécessitant une immobilisation</b>
    <form>
    <select name="niveau" size="1">
    <option value="General"> General  </option>
    <option value="Localisé">  Localisé  </option>
    </select>
    <br>
    <br>
    <br>
    <br>
    <br><select name="categorie" size="1">
    <option value="Service"> Service </option>
    <option value="Testo France"> Testo France </option>
    <option value="Forbach"> Forbach </option>
    <option value="Paris"> Paris </option>
    <option value="TCI"> TCI </option>
    </select>
    <br>
    <br>
    <br>
    <?php
    $niveau=$_POST['niveau'];
    $categorie=$_POST['categorie'];
    ?>
    <br>
    <br>
    <br><center><a href="panne_suivante.html">Suivant</a></center>
     
    </center>
    </form>
    </html>
    ma page panne.php
    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
    <?php 
    // On commence par récupérer les champs 
     
     
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['date_debut']))      $date_debut=$_POST['date_debut'];
    else      $date_debut="";
     
    if(isset($_POST['date_fin']))      $date_fin=$_POST['date_fin'];
    else      $date_fin="";
     
    if(isset($_POST['solution']))      $solution=$_POST['solution'];
    else      $solution="";
     
    if(isset($_POST['duree']))      $duree=$_POST['duree'];
    else      $duree="";
     
     
     
    { 
           // connexion à la base
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error()); 
     
        // on écrit la requête sql 
        $sql = "INSERT INTO panne(niveau, categorie, nom, date_debut, date_fin, solution, duree) VALUES('$niveau','$categorie','$nom','$date_debut','$date_fin','$solution','$duree')"; 
        // on insère les informations du formulaire dans la table 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        // on affiche le résultat pour le visiteur 
        echo 'Vos infos on été ajoutées.'; 
     
        mysql_close();  // on ferme la connexion 
        }  
    ?>

  6. #6
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    exemple

    page1.html
    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
    <html>
     
    <head>
      <title>page1</title>
    </head>
     
    <body>
     
    Saisie d une Intervention nécessitant une immobilisation :
     
    <form action="./page2.php" method="post">
      <select name="niveau">...</select>
      <select name="categorie">...</select>
      <input type="submit" name="submitPage1" value="Page suivante" />
    </form>
     
    </body>
     
    </html>
    page2.php
    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
    <?php
    if (!isset($_POST['submitPage1'])) {
      header('Location: ./page1.html');
      exit;
    }
    ?>
     
    <html>
     
    <head>
      <title>page2</title>
    </head>
     
    <body>
     
    <form action="./panne.php" method="post">
      <input type="text" name="nom" size="20" value="Nom de POste" maxlength="35" />
      // autres input text
     
      <input type="hidden" name="niveau" value="<?php echo $_POST['niveau']; ?>" />
      <input type="hidden" name="categorie" value="<?php echo $_POST['categorie']; ?>" />
     
      <input type="submit" name="submitPage2" value="Valider" />
    </form>
     
    </body>
     
    </html>
    panne.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (!isset($_POST['submitPage2'])) {
      header('Location: ./page1.html');
      exit;
    }
    ?>
     
    // récupération des valeurs, requête...

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Merci de ton aide
    Cependant ca ne prend toujours pas les valeurs
    Aurais tu une idée ?

    Voici la page1.html
    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
    <html>
     
    <head>
      <title>page1</title>
    </head>
     
    <body>
     
    Saisie d une Intervention nécessitant une immobilisation :
     
    <form action="./page2.php" method="post">
    <select name="niveau">
    <option value="General"> General  </option>
    <option value="Localisé">  Localisé  </option>
    </select>
    <br>
    <br>
    <select name="categorie">
    <option value="Service"> Service </option>
    <option value="Testo France"> Testo France </option>
    <option value="Forbach"> Forbach </option>
    <option value="Paris"> Paris </option>
    <option value="TCI"> TCI </option>
    </select>
    <input type="submit" name="submitPage1" value="Page suivante" />
    </form>
     
    </body>
     
    </html>
    ma page2.php
    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
    <?php
    if (!isset($_POST['submitPage1'])) {
      header('Location: ./page1.html');
      exit;
    }
    ?>
     
    <html>
     
    <head>
      <title>page2</title>
    </head>
     
    <body>
     
    <form action="./panne.php" method="post">
    <input type="hidden" name="niveau" value="<?php echo $_POST['niveau']; ?>" />
    <br>
    <input type="hidden" name="categorie" value="<?php echo $_POST['categorie']; ?>" />
    <br> 
    <input type="text" name="nom" size="20" value="Nom de POste" maxlength="35" />
    <br>
    <input type="text" name="date_debut" size="20" value="Date de Debut" maxlength="11" />  
    <br> 
    <input type="text" name="date_fin" size="20" value="Date de Fin" maxlength="70" />
    <br>
    <input type="text" name="solution" size="20" value="Solution" maxlength="70" /> 
    <br>
    <input type="text" name="duree" size="20" value="Durée" maxlength="70" /> 
    <br>
     
    <input type="submit" name="submitPage2" value="Valider" />
    </form>
     
    </body>
     
    </html>
    ma page.php
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    if (!isset($_POST['submitPage2'])) {
      header('Location: ./page1.html');
      exit;
    }
    ?>
     
    <?php 
    // On commence par récupérer les champs 
     
     
     
    if(isset($_POST['niveau']))      $nom=$_POST['niveau'];
    else      $niveau="";
     
    if(isset($_POST['categorie']))      $nom=$_POST['categorie'];
    else      $categorie="";
     
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['date_debut']))      $date_debut=$_POST['date_debut'];
    else      $date_debut="";
     
    if(isset($_POST['date_fin']))      $date_fin=$_POST['date_fin'];
    else      $date_fin="";
     
    if(isset($_POST['solution']))      $solution=$_POST['solution'];
    else      $solution="";
     
    if(isset($_POST['duree']))      $duree=$_POST['duree'];
    else      $duree="";
     
     
     
    { 
           // connexion à la base
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error()); 
     
        // on écrit la requête sql 
        $sql = "INSERT INTO panne (niveau, categorie, nom, date_debut, date_fin, solution, duree) VALUES('$niveau','$categorie','$nom','$date_debut','$date_fin','$solution','$duree')"; 
        // on insère les informations du formulaire dans la table 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        // on affiche le résultat pour le visiteur 
        echo 'Vos infos on été ajoutées.'; 
     
        mysql_close();  // on ferme la connexion 
        }  
    ?>

  8. #8
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    Citation Envoyé par stefon
    ca ne prend toujours pas les valeurs
    Aurais tu une idée ?
    ouais, trop rapide sur le copier coller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['niveau']))      $nom=$_POST['niveau'];
    else      $niveau="";
    
    if(isset($_POST['categorie']))      $nom=$_POST['categorie'];
    else      $categorie="";
    
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Oh l'erreur a la con !
    Merci bcp

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 136
    Points : 133
    Points
    133
    Par défaut
    slt,

    Juste un petit détail: internet explorer ne soumet pas les valeurs des entrées de type "submit" lorsqu'un formulaire est validé sans cliquer sur le bouton "submit" mais en tapant la touche "Entrée" par exemple. Donc ce n'est pas un moyen efficace de vérifier qu'un formulaire est soumis.

  11. #11
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    @sympho

    a bon
    je savais pas

    décidément, chaque jour j'ai une raison de plus de détester IE

    @stefon

    du coup dans les isset, mets $_POST['niveau']
    de la 1ère à la 2ème page, comme c'était une liste déroulante et vu comme tu l'as remplie, t'as forcément une valeur
    de la 2ème à la 3ème page, champ caché ayant récupéré la valeur de la 1ère page, forcément une valeur

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 136
    Points : 133
    Points
    133
    Par défaut
    re,

    A propos des entrées de type submit, au début ça m'a vexé de découvrir ce fonctionnement de internet explorer (il fallait que je modifie quelques uns de mes formulaires), mais après réflexion il y a une explication :

    1 - un formulaire peut contenir plusieurs entrées de type submit
    2 - le standard demande qu'une seule de ces entrées soit envoyée lors de la soumission du formulaire
    3 - lorsque le formulaire est soumis par clic, firefox et internet explorer ont un comportement identique, ils soummettent tous deux le bouton cliqué,
    4 - lorsque le formulaire est soumis par la touche <entrée> firefox fait de "l'arbitraire" en choisissant un submit parmi tous ceux disponibles (apparement il prend celui rencontré en premier dans le code html). Internet explorer choisit de ne pas faire de choix et n'envoie aucune entrée submit.

    Le comportement de ie sur ce point n'est donc par forcément un "défaut" mais plutôt un choix, qui certe est embêtant, puisque en majorité (j'ai pas fait de sondage IPSOS ), les formulaires ont une seule entrée submit.

    Ceci dit, moi je préfère ff, surtout depuis que la version 7 de ie est sortie

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

Discussions similaires

  1. garder une valeur apres un rechargement
    Par isma92 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 02/02/2007, 13h43
  2. Réponses: 4
    Dernier message: 12/12/2006, 08h14
  3. Garder une valeur en mémoire
    Par Pitou5464 dans le forum Access
    Réponses: 4
    Dernier message: 08/09/2006, 19h06
  4. Garder une valeur d'un formulaire
    Par Shandler dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2006, 09h52
  5. [C#] User Control, garder une valeur
    Par Oberown dans le forum ASP.NET
    Réponses: 9
    Dernier message: 06/03/2006, 15h41

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