【发布时间】:2016-08-03 03:40:24
【问题描述】:
我需要根据表单值过滤如何在 MySQL 中保存结果,但回显测试显示 2 个结果
这里是选择表单
<select name="documento" id="documento">
<option value="boleta">boleta</option>
<option value="comprobante" selected>comprobante</option>
<option value="factura">factura</option>
</select>
这是我保存到 MySQL 之前的测试,从选择表单中获取值
$mismofolio=mysqli_real_escape_string($db,$_POST['mismofolio']);
$cliente = mysqli_real_escape_string($db,$_POST['cliente']);
$documento=mysqli_real_escape_string($db,$_POST['documento']);
if (empty($mismofolio) && $documento == 'boleta') {
echo "boleta folio nuevo";
}
if (!empty($mismofolio) && $documento == 'boleta') {
echo "boleta con el mismo folio $mismofolio";
}
if (empty($mismofolio) && $documento == 'comprobante') {
echo "comprobante folio nuevo";
}
if (!empty($mismofolio) && $documento == 'comprobante') {
echo "comprobante con el mismo folio $mismofolio";
}
if (empty($mismofolio) || empty($cliente) && $documento == 'factura') {
echo "factura folio nuevo";
}
if (!empty($mismofolio) || !empty($cliente) && $documento == 'factura') {
echo "factura mismo folio $mismofolio";
}
我只需要回显 1 个值,但我得到的结果是:
Selecting: documento=boleta
回声:
BOLETA FOLIO NUEVOFACTURA FOLIO NUEVO
如您所见,php 代码占用 2 if 而不是 1,这很糟糕,因为我可以在 MySQL 中保存 2 次p>
$mismofilio 和 $cliente 在测试中都是空的,所以我只需要 echo
{echo "boleta folio nuevo";}
但我不明白为什么它显示更多......
【问题讨论】:
-
你的逻辑好像有点不对。如果
empty($mismofolio) && $documento == 'boleta'为真,则empty($mismofolio)为真,empty($mismofolio) || ...也为真 -
真正让我吃惊的是你的代码有小写的字符串,而你的输出却是大写的......
标签: php html mysql forms variables