【发布时间】:2018-10-22 15:54:55
【问题描述】:
我已经做了十几次这样的事情,但不知何故它不起作用。
我的代码是:
$query_locals = "SELECT * FROM TbLocal LEFT JOIN TbFraccao ON TbLocal.PkLocal=TbFraccao.FkLocal LEFT JOIN TbTipo ON TbFraccao.FkTipo=TbTipo.PkTipo ORDER BY TbLocal.LocalNome, TbFraccao.FraccaoNome";
$result_locals = mysqli_query($conn, $query_locals);
$lista_locals="";
while($row_local = mysqli_fetch_assoc($result_locals))
{$lista_locals = $lista_locals . '<option value="' . $row_local['PkFraccao'] . '"> ' . $row_local['LocalNome'] . "- ". $row_local['TipoNome'] . " - ". $row_local['FraccaoNome'] ."</option>";
echo $row_local['LocalNome']. "<br>";
};
echo "lista de locais - " . $lista_locals;
echo $row_local['LocalNome']. "<br>"; 可以正常工作,但 echo "lista de locais - " . $lista_locals; 没有...任何猜测??
- 我已经在我的数据库中直接尝试了该查询,它工作正常。
- 我已经符合所有列名。
这是表单部分:
<div >
<label class="control-label " for="local">Local</label>
<select class="select form-control" id="local" name="local" >
<?php
echo $lista_fraccoes;?>
</option>
</select>
</div>
【问题讨论】:
-
像这样初始化
$lista_locals=''; -
注意:
mysqli的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)和$db->prepare("…")程序接口是 PHP 4 时代引入的mysqliAPI 的产物,不应在新代码中使用。 -
在每个变量上加上
_local后缀是一种习惯,它会变得古怪到令人讨厌的程度。您将使用的几乎所有变量都是“本地的”。全局变量应该是例外,并且尽可能避免。 -
不清楚您所说的“不工作”是什么意思。您的意思是“不获取数据”还是“根本不显示任何内容”?请记住,“不工作”是您可以给出的最没有用的诊断,所以要更具体。
-
<option>应该在<select>内部。
标签: php html mysql mysqli dropdown