Var 未受影响 mysql

Var not affected on mysql

大家早上好!

我的代码中的 var 有问题:

    <?Php
error_reporting(E_ALL);
  //Si IP correspond pas au PC autorisé, on retourne au debut.
  include "./_protection.php";
  $data='';
  $rep='';
  $requete='';
  $val = '';
  $Reference= '';

echo '<h2><u>Commander des pièces</u></h2><br>';

/*****************************************************************************************************
 *                                  AJOUT DE PIECE DANS LA BASE DE DONNEES
 *****************************************************************************************************/

  if(@$_POST['action'] == "ajouter")
  {
    if(!empty($_POST['choix'])){    
        foreach($_POST['choix'] as $val){
            $Reference.="$val,"; 
        }

    //Injection dans la base SQL
    include "./../connexion.inc";
    mysql_query("INSERT INTO `tbl_commandes` ( `id`, `Eleve`, `Reference`, `Quantite`, `Date`, `Statut` )
VALUES ( '', '".$_POST['Eleve']."', '".$_POST['Reference']."', '".$_POST['Quantite']."', '".$_POST['Date']."', '".$_POST['Statut']."' )");
    mysql_close();
    }
  } 


/*****************************************************************************************************
 *                                  FORMULAIRE POUR L'AJOUT DE PIECE
 *****************************************************************************************************/
echo '
<fieldset>
    <legend>Commander des Pièces</legend>
    <FORM action="./?page=commande_piece_full_php" method="POST">
        <p align="left">
        <H2>Pièces :</h2>
        <br>';
        echo $Reference;
        include "./../connexion.inc";
        $rep = mysql_query("SELECT id_categorie_piece, categorie_piece FROM tbl_categorie_piece ORDER BY categorie_piece");
        mysql_close();
        include "./../connexion.inc";
        while($data = mysql_fetch_array($rep))
            {
            echo $data['categorie_piece'];
            echo '<br>';
            $requete = $data['id_categorie_piece'];
            $reponse = mysql_query("SELECT id_piece, piece FROM tbl_piece WHERE idr_categorie_piece='$requete' ORDER BY piece");
            while($donnees = mysql_fetch_array($reponse)){
                ?> <input type="checkbox" name="choix[]" value="<? echo $donnees['id_piece'] ?>"><? echo $donnees['piece'] ?><br> <?
                }
            echo '<br>';
            }
        mysql_close();
echo '
    Elève : 
    <select name="Eleve">';
        include "./../connexion.inc";
        $reponse2 = mysql_query("SELECT id_client, client FROM tbl_client ORDER BY client");
        while($donnees2 = mysql_fetch_array($reponse2))
        {
            ?> <option value="<? echo $donnees2['client'] ?>"><? echo $donnees2['client'] ?></option> <?
        }
        mysql_close();
    echo '
    </select>
    <br>
    Date souhaitée : <input type="textbox" name="Date">
    <br>
    Quantité : <input type="textbox" name="Quantite">
    <br>
    <input type="submit" value="ajouter">
    <input type="hidden" name="action" value="ajouter">
    </form>
</fieldset>';

?>

我的 var $reference 还可以,我可以 echo $reference; 并正确获取内容 但是,当我想将 $reference 发送到我的 mysql table 时......不会发送它 当我提交时,我从解析器收到此通知:通知:

Undefined index: Reference in /home/bddstock/www/admin/commande_piece_full_php.php on line 27

但是提交后,我在 PIECES 下的回显行中得到了正确的内容 所以我真的不明白.. 有人可以帮我吗?

将插入语句更改为

mysql_query("INSERT INTO `tbl_commandes` ( `id`, `Eleve`, `Reference`,    
`Quantite`, `Date`, `Statut` )
VALUES ( '', '".$_POST['Eleve']."', '".$Reference."', '".$_POST['Quantite']."', '".$_POST['Date']."', '".$_POST['Statut']."' )");

即,将 $_POST['Reference'] 更改为 $Reference,因为您尚未发布此字段,而且您似乎是从循环 $_POST['choix'].

中派生的

注意:使用 mysqli 而不是 mysql 并参考 How can I prevent SQL injection in PHP?