我正在尝试在我的表中插入订单,但是我的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(); ?>
答案 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的行。