我构建了一个简单的输入下拉列表,使用<select>
它从 mysql 数据库中填充。
它工作得很好,但是如果没有找到查询的结果,那么下拉列表只会缩小并且什么也不说。
我希望它说类似:“找不到名称”。我到处寻找,但似乎找不到路。
这是我的代码:
<?php
if ( $myquery = $mysqli->prepare("SELECT name, idname FROM db WHERE
name LIKE '%".$name."%'") ) {
$myquery->execute();
$myquery->store_result();
$myquery->bind_result( $nompac, $idpac ) ;
}
<form name="form1" method="post" action="example.php">
<table >
<tr>
<td>Name: </td>
<td>
<select name="chosen_name">
<?php
while ( $myquery->fetch() ) {
echo "<strong><option value=".$idpac.">".$nompac."</option></strong>";
}
?>
</select>
</td>
<td><input type="submit" name="Submit" value="Go" class="button"/></td>
</tr>
</table>
</form>
我想添加一个 IF 语句,比如“如果 $myquery 没有找到任何结果,则 $nompac ="name not found"。所以我在 WHILE 语句之后写了这个:
if ( $nompac = "" ) {
$nompac = "Name not found";
$idpac = "0";
}
但它只是忽略了代码,就好像我什么都没写一样:(
好的,我按照 Melancholy 先生的建议添加了代码。现在看起来像这样:
<form name="form1" method="post" action="example.php">
<table >
<tr>
<td>Name: </td>
<td>
<select name="chosen_name">
<?php
if ( empty( $myquery ) ) {
echo "<strong><option value=''>Name not found</option></strong>";
} else {
while ( $myquery->fetch() ) {
echo "<strong><option value=".$idpac.">".$nompac."</option></strong>";
}
}
?>
</select>
</td>
<td><input type="submit" name="Submit" value="Go" class="button"/></td>
</tr>
</table>
</form>
但如果查询没有找到名称,仍然不起作用。我究竟做错了什么?:-s
我添加了 !empty 而不是 empty,我很高兴它似乎可以工作,但事实证明,即使查询建立了正确的名称,它每次都回显“未找到名称”,所以回到第一个 :(