使用下拉列表从表单插入表格

时间:2014-06-16 02:43:26

标签: php html mysql

我正在尝试在我的表中插入订单,但是我的sql没有正确执行,我已经一遍又一遍地阅读,我无法找到我想念的地方。我认为可能是插入可能是错误的,我认为因为我的两个字段是其他表的外键,是不是我做错了?或者它与PHP?你能查看我的代码吗?

这是:

<?PHP
session_start();
    $host="xxxxx"; // Host name 
    $username="xxxx"; // Mysql username 
    $password="xxxx"; // Mysql password 
    $db_name="xxxx"; // Database name 
    $tbl_name="uxxxx";


    // Connect to server and select databse.
    $link = mysqli_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysqli_select_db($link , $db_name)or die("cannot select DB");

    // CHECK LOG IN

    if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
        echo "";

} else {
    header('Location: ../index.php');
}
    // END OF LOG IN CHECK

?>



<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Formulario De Encomenda</title> 
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
    <link type="text/css" rel="stylesheet" href="css/stylesEditF.css"></link>
  <link type="text/css" rel="stylesheet" href="css/stylesEditF.php"></link> 
  </head>
  <body>

    <form action="" method="post">
        <input type ="hidden" name="idEncomenda">
        <input type="hidden" name="codigoDeBarras">
        <input type="hidden" name="NIF">
        <input type="hidden" name="valorUnidade">


        <input type="hidden" name="valorTotal">
        <p>
            <label>Data</label>
            <input type="date" name="DataDeEncomenda">
            <input type="hidden"  name="IdEncomenda" >
        </p>
        <p>
            <label>Escolher Produto</label>
            <select id="produtos" >
                <?php

                    $query = $link->query("SELECT * FROM produto");
                    while ( $row = $query->fetch_array() ) {
                        echo "<option data-code=". $row['codigoDeBarras'] ." data-price=". $row['Preco'] .">" . $row['nome'] . "</option>";
                    }
                ?>
                <input type="hidden"  name="Produto" value="1">
            </select>
        </p>
        <p>
            <label>Escolher Fornecedor</label>
            <select id="fornecedor">
                <?php
                    $query = $link->query("SELECT * FROM fornecedor");
                    while ( $row = $query->fetch_array() ) {
                        echo "<option data-nif=". $row['NIF'] .">". $row['Nome'] ."</option>";

                    }
                ?> 
                <input type="hidden"  name="Fornecedor" >
            </select>
        </p>
        <p>



            <label>Quantidade</label>
            <input type="number" min="1" name="Quantidade" >
        </p>
        <p>
            <label>Preco(Unidade)</label>
            <span id="price">0.00</span>
            <input type="hidden"  name="preco" >
        </p>
        <p>
            <label>Valor Total</label>
            <span id="total_price">0.00</span>
            <input type="hidden"  name="valor" >
        </p>
        <input type="submit" name="Enviar" id="Enviar" value="Enviar" />
    </form>

    <?php

     if( $_POST != '' && $_POST != NULL ){

            $encomenda_data = $_POST['DataDeEncomenda'];
            $encomenda_qty = $_POST['Quantidade'];
            $encomenda_nif = $_POST['Fornecedor'];
            $encomenda_codigo = $_POST['Produto'];
            $encomenda_preco = $_POST['preco'];
            $encomenda_total = $_POST['valor'];


            $sql3 = "INSERT INTO encomendain ( DataDeEncomenda, Quantidade, NIF, codigoDeBarras, Preço, ValorTotal) VALUES         ( '$encomenda_data' , '$encomenda_qty' , '$encomenda_nif' , '$encomenda_codigo' , '$encomenda_preco', '$encomenda_total') ";


            $result = mysqli_query($link, $sql3) or die("Could not insert");
            header('Location: paginaEncomendaIn.php');

        }





    ?>
    <script type="text/javascript">
        jQuery(document).ready(function($){
           var codigoDeBarras = $('input[name="codigoDeBarras"]');
           var nif = $('input[name="NIF"]');
           var valorUnidade = $('input[name="valorUnidade"]');
           var valorTotal = $('input[name="valorTotal"]');
           var quantidade = $('input[name="Quantidade"]');

           $('select#produtos').change(function(){
              if( !$(this).find('option:selected').val() == '' ){
                  var price = parseInt($(this).find('option:selected').attr('data-price'));
                  var code = $(this).find('option:selected').attr('data-code');
                  $('#price').html(price);
                  $('#total_price').html(price * parseInt(quantidade.val()));
                  codigoDeBarras.val(code);
                  valorUnidade.val(price);
                  valorTotal.val(price * parseInt(quantidade.val()));
              }
           });
           quantidade.bind('click keyup', function(){
              if( !$('select#produtos').find('option:selected').val() == '' ){
                  var price =  $('select#produtos').find('option:selected').attr('data-price');
                  $('#total_price').html(price * parseInt($(this).val()));
                  valorTotal.val(price * parseInt(quantidade.val()));
              }
           });
           $('select#fornecedor').change(function(){
              if( !$(this).find('option:selected').val() == '' ){
                nif.val($(this).find('option:selected').attr('data-nif'));
              }
           });
        });
    </script>

  </body>
</html>


<?php $link->close(); ?>

1 个答案:

答案 0 :(得分:0)

echo $ sql3并查看实际查询。这将让您了解查询的错误。 并改变下面的行 $ result = mysqli_query($ link,$ sql3)或die(&#34;无法插入&#34;); 至 $ result = mysqli_query($ link,$ sql3)或死(&#34;无法插入&#34; .mysqli_error());

这会打印导致你的sql无法正常执行的错误,所以你知道你的sql有问题。

我在你的代码中注意到的另一件事是你的使用   标题(&#39;位置:paginaEncomendaIn.php&#39;);

Php将抛出无法修改标题信息....因为你已经在它上面启动了html代码。将您在表单下面编写的PHP代码移动到上面开始HTML的行。

相关问题