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 :

Passage de valeurs entre 2 pages [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut Passage de valeurs entre 2 pages
    Bonjour,

    Je n'arrive pas à passer des valeurs d'une page à une autre.

    Voici le code de la page 1.

    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
    // le formulaire
    $x = '';
    $x .= '<form action="update.php" method="post">
             <tr><td colspan="7">Modèle du produit&nbsp;<input type="text" name="modele" size="5"><input name="executer" type="submit" value="Exécuter">
    	 <input type="hidden" name="id"><input type="hidden" name="description"></td></tr></form>';
    echo $x;
     
    if(!empty($_POST['modele'])){
      $cnx = mysql_connect("localhost", "root", "") ;   //connection au serveur
      $db  = mysql_select_db("ma_base") ;  //sélection de la base de données
     
      //je cherche le produit sélectionné
      $req_prod = "select * from " . TABLE_PRODUCTS . " where products_model='$modele'";
      $req = mysql_query($req_prod, $cnx) or die('Erreur SQL !<br>'.$req_prod.'<br>'.mysql_error());
      $data = mysql_fetch_array($req);
      $id = $data['products_id'];
     
      //je cherche la description du produit sélectionné
      $req_desc = "select * from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id ='$id' and language_id='2'";
      $req1 = mysql_query($req_desc, $cnx) or die('Erreur SQL !<br>'.$req_desc.'<br>'.mysql_error());
      $data1 = mysql_fetch_array($req1);
      $description = $data1['products_description']; 
     
      mysql_close();
    }
     
    ?>
    Quand je teste $id et $description dans la page 2 (update.php) les 2 variables sont vides.

    Voici le code de la page 2.

    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
    <?php
     
    //test de passage de var
    $id= $_POST['id'];
    $description = $_POST['description'];
    echo ' ID : '.$id;
     
    if (!empty($_POST) && !empty($_POST['executer'])) {
     	mysql_query('UPDATE "' . TABLE_PRODUCTS_DESCRIPTION .'" SET products_description="'.$description.'" WHERE products_id = "'.$id.'"') or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());  
        $mess = "<h2>Mise à jour effectuée!</h2>"; 
        echo $description;
    }
     
      $cnx = mysql_connect("localhost", "root", "") ; //connection au serveur 
      $db  = mysql_select_db("ma_base") ;  //sélection de la base de données
     
      //je cherche le produit sélectionné
    if(!empty($_POST['modele'])){ 
      //je charge l'enregistrement à updater
      $req_desc = "select * from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id ='$id' and language_id='2'";
      $req1 = mysql_query($req_desc, $cnx) or die('Erreur SQL !<br>'.$req_desc.'<br>'.mysql_error());
      $data1 = mysql_fetch_array($req1);
      $description = $data1['products_description'];  
    }
     
    // le formulaire
    $x = '';
    $x = '<form action="bdd_mod_description.php" method="post">
             <tr class="texte_tb"><td colspan="7" style="border: 0px solid silver;" class="texte_tb" align="center">MODIFIER DANS LE CATALOGUE LA DESCRIPTION D\'UN PRODUIT</td></tr>
    	 <tr class="texte_tb"><td colspan="7">&nbsp;</td></tr>
    	 <tr><td colspan="7" style="border: 0px solid silver;" class="texte_tb" align="center">Nouvelle description&nbsp;<textarea name="description" cols="70" rows="20" style="overflow:auto">'.$description.'</textarea></td></tr>		 
             <tr><td colspan="7" align="center"><input name="executer" type="submit" value="Exécuter"></td></tr>
    	 <tr><td colspan="7" align="center">&nbsp;</td></tr></form>';
    echo $x; 
    mysql_close();
      ?>
    Dans page 2, j'obtiens l'erreur suivante ID : Erreur sql ligne 92 Erreur de syntaxe près de '='' WHERE products_id =' à la ligne 1 (c'est la ligne de l'UPDATE).Probablement parce que $id est vide...

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    déjà, vous n'indiquez aucune valeur dans vos balises hidden.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input name="id" type="hidden" value="'.$id.'" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input name="description" type="hidden" value="'.$description.'" />
    De plus, votre partie du code concernant la variable $x doit être située en dessous du résultat de la requête MySQL. Sinon, la variable $id et la variable $description ne sont définies et retournent FALSE.

    Cordialement,
    DaRiaN.

    PS: vous n'avez pas saisi le concept de programmation en PHP.

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    Bonjour,

    En faite, votre soucis vient du faite que vous lancez votre requête sql dans la mauvaise page.

    Ce vous devriez faire c'est mettre dans votre page 1 ceci seulement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    // le formulaire
    $x = '';
    $x .= '<form action="update.php" method="post">
             <tr><td colspan="7">Modèle du produit&nbsp;<input type="text" name="modele" size="5"><input name="executer" type="submit" value="Exécuter"></td></tr></form>';
    echo $x;
    ?>
    Et dans votre page update.php mettre l'appel de votre requete sql :

    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
    // Votre requete sql de la premiere page
    if(!empty($_POST['modele'])){
    $modele = $_POST['modele'];
      $cnx = mysql_connect("localhost", "root", "") ;   //connection au serveur
      $db  = mysql_select_db("ma_base") ;  //sélection de la base de données
     
      //je cherche le produit sélectionné
      $req_prod = "select * from " . TABLE_PRODUCTS . " where products_model='$modele'";
      $req = mysql_query($req_prod, $cnx) or die('Erreur SQL !<br>'.$req_prod.'<br>'.mysql_error());
      $data = mysql_fetch_array($req);
      $id = $data['products_id'];
     
      //je cherche la description du produit sélectionné
      $req_desc = "select * from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id ='$id' and language_id='2'";
      $req1 = mysql_query($req_desc, $cnx) or die('Erreur SQL !<br>'.$req_desc.'<br>'.mysql_error());
      $data1 = mysql_fetch_array($req1);
      $description = $data1['products_description']; 
     
     
    // le reste de votre deuxieme page
     
    echo ' ID : '.$id;
     
    if (!empty($_POST) && !empty($_POST['executer'])) {
     	mysql_query('UPDATE "' . TABLE_PRODUCTS_DESCRIPTION .'" SET products_description="'.$description.'" WHERE products_id = "'.$id.'"') or die('Erreur sql ligne ' . __LINE__ . '<br />'.mysql_error());  
        $mess = "<h2>Mise à jour effectuée!</h2>"; 
        echo $description;
    }
     
      $cnx = mysql_connect("localhost", "root", "") ; //connection au serveur 
      $db  = mysql_select_db("ma_base") ;  //sélection de la base de données
     
      //je cherche le produit sélectionné
    if(!empty($_POST['modele'])){ 
      //je charge l'enregistrement à updater
      $req_desc = "select * from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id ='$id' and language_id='2'";
      $req1 = mysql_query($req_desc, $cnx) or die('Erreur SQL !<br>'.$req_desc.'<br>'.mysql_error());
      $data1 = mysql_fetch_array($req1);
      $description = $data1['products_description'];  
    }
     
    // le formulaire
    $x = '';
    $x = '<form action="bdd_mod_description.php" method="post">
             <tr class="texte_tb"><td colspan="7" style="border: 0px solid silver;" class="texte_tb" align="center">MODIFIER DANS LE CATALOGUE LA DESCRIPTION D\'UN PRODUIT</td></tr>
    	 <tr class="texte_tb"><td colspan="7">&nbsp;</td></tr>
    	 <tr><td colspan="7" style="border: 0px solid silver;" class="texte_tb" align="center">Nouvelle description&nbsp;<textarea name="description" cols="70" rows="20" style="overflow:auto">'.$description.'</textarea></td></tr>		 
             <tr><td colspan="7" align="center"><input name="executer" type="submit" value="Exécuter"></td></tr>
    	 <tr><td colspan="7" align="center">&nbsp;</td></tr></form>';
    echo $x; 
    mysql_close();
      ?>
    Ps : Darian, je crois que justement, s'il poste c'est bien pour être aidé et non être cassé.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Merci Andalor, vous m'avez sauvé la vie

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    De rien, mais n'oubliez pas le petit tag résolu.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Euh...juste un petit problème de syntaxe, j'ai une erreur sur la ligne de l'update et je me mélange les crayons avec les simples et doubles quotes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mysql_query('UPDATE "' . TABLE_PRODUCTS_DESCRIPTION .'" SET products_description="'.$description.'" WHERE products_id = "'.$idprod.'"')

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Citation Envoyé par Andalor Voir le message
    Ps : Darian, je crois que justement, s'il poste c'est bien pour être aidé et non être cassé.
    Bonjour,
    vous ne comprenez pas le sens de mes interventions et si vous pensez qu'il n'y a aucune once d'aide dans mon précédent message, vous vous trompez lourdement.

    Proverbe chinois : Si tu donnes un poisson à un homme, il se nourrira une fois. Si tu lui apprends à pêcher, il se nourrira toute sa vie.

    Cordialement,
    DaRiaN.

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

Discussions similaires

  1. passage de valeur entre deux pages avec a href
    Par phenix1988 dans le forum Langage
    Réponses: 9
    Dernier message: 14/03/2011, 16h52
  2. Passage de valeurs entre 2 pages.
    Par fontaine_rousse dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/06/2007, 09h58
  3. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  4. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16
  5. Passage de valeurs entre fenêtres différentes
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/02/2005, 15h10

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