Php sql查询的两种形式
我有以下代码。 如果我提交第一个表单(带有A和B选项的表单),第二个查询工作正常,但是当我提交第二个表单(带有日期的表单)时,查询不工作,因为我丢失了变量Php sql查询的两种形式,php,mysql,forms,Php,Mysql,Forms,我有以下代码。 如果我提交第一个表单(带有A和B选项的表单),第二个查询工作正常,但是当我提交第二个表单(带有日期的表单)时,查询不工作,因为我丢失了变量$XStocLa的值 我希望能够选择选项A或B以及要保存在会话中的此选项,然后能够选择第二种形式的不同日期,但保留我之前选择的$XStocLa的值,直到我选择其他值或重置会话 <form method="post"> <select name="XStocLa" id="StocLa"> <
$XStocLa
的值
我希望能够选择选项A或B以及要保存在会话中的此选项,然后能够选择第二种形式的不同日期,但保留我之前选择的$XStocLa
的值,直到我选择其他值或重置会话
<form method="post">
<select name="XStocLa" id="StocLa">
<option>A</option>
<option>B</option>
</select>
<input type="submit" value="Select">
</form>
<form method="post">
<input type="date" name="ordersmonth">
<input type="submit" value="Select">
</form>
<?php
if(isset($_POST['ordersmonth'])) {
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
} else {
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
?>
A.
B
您使用两个表单,因此这两个表单中的所有变量都是独立的。重新编写代码以仅使用一个表单。您使用两个表单,因此这两个表单中的所有变量都是独立的。重新编写代码以仅使用一个表单。这可以仅使用一个表单完成:
<form method="post">
<select name="XStocLa" id="StocLa">
<option>A</option>
<option>B</option>
</select>
<input type="date" name="ordersmonth">
<input type="submit" value="Select">
</form>
<?php
if(isset($_POST['ordersmonth']) && !empty($_POST['ordersmonth'])) {
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
} else {
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
?>
A.
B
这只能使用1张表格完成:
<form method="post">
<select name="XStocLa" id="StocLa">
<option>A</option>
<option>B</option>
</select>
<input type="date" name="ordersmonth">
<input type="submit" value="Select">
</form>
<?php
if(isset($_POST['ordersmonth']) && !empty($_POST['ordersmonth'])) {
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
} else {
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
?>
A.
B
您可以在一个表单中使用两个提交按钮来完成此操作,如下所示
注意:我只命名提交按钮select1
和select2
<form method="post">
<select name="XStocLa" id="StocLa">
<option>A</option>
<option>B</option>
</select>
<input type="submit" name="select1" value="Select">
<input type="date" name="ordersmonth">
<input type="submit" name="select2" value="Select">
</form>
<?php
//I just assume your that $OrderTable is order_tbl
$OrderTable = 'order_tbl';
//Check if select1 has been set or clicked
if(isset($_POST['select1'])) {
$XStocLa= $_POST['XStocLa'];
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
//check if select2 has been set or clicked
} else if(isset($_POST['select2'])){
$XStocLa= $_POST['XStocLa'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
A.
B
您可以在一个表单中使用两个提交按钮来完成此操作,如下所示
注意:我只命名提交按钮select1
和select2
<form method="post">
<select name="XStocLa" id="StocLa">
<option>A</option>
<option>B</option>
</select>
<input type="submit" name="select1" value="Select">
<input type="date" name="ordersmonth">
<input type="submit" name="select2" value="Select">
</form>
<?php
//I just assume your that $OrderTable is order_tbl
$OrderTable = 'order_tbl';
//Check if select1 has been set or clicked
if(isset($_POST['select1'])) {
$XStocLa= $_POST['XStocLa'];
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
//check if select2 has been set or clicked
} else if(isset($_POST['select2'])){
$XStocLa= $_POST['XStocLa'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$XStocLa' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
A.
B
我已经编辑了你的php代码。试试看。但是就像他们说的,你只能在一个帖子上做
if(isset($_POST['ordersmonth'])) {
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$_POST['XStocLa']' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
} else {
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$_POST['XStocLa']' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
我已经编辑了你的php代码。试试看。但是就像他们说的,你只能在一个帖子上做
if(isset($_POST['ordersmonth'])) {
$OrdersMonth = $_POST['ordersmonth'];
$sql ="SELECT * FROM " .$OrderTable. " WHERE YEAR(Date) = YEAR('" .$OrdersMonth. "') AND MONTH(DATE) = MONTH('" .$OrdersMonth. "') AND StocLa = '$_POST['XStocLa']' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
} else {
$sql ="SELECT * FROM " .$OrderTable. " WHERE StocLa = '$_POST['XStocLa']' ORDER BY Date DESC, ID ASC";
$result = $conn->query($sql);
}
为什么要使用两种不同的表单?然后开始编写代码以使用会话/cookie?我们不会为您编写。不需要使用两种表单为什么您使用两种不同的表单?然后开始编写代码以使用会话/cookie?我们不会为您编写。无需使用2个表单谢谢,此解决方案也可以,但Pathik Vejani的解决方案较短。谢谢,此解决方案也可以,但Pathik Vejani的解决方案较短。@GrimVic乐于帮助:)@GrimVic乐于帮助:)