我使用从{mysql数据库填充的<select>
构建了一个简单的输入下拉列表。
它运行正常,但是如果找不到查询的结果,则下拉列表会缩小并且不会说任何内容。
我希望它能说:“找不到名字”。我到处搜索,但似乎找不到路。
这是我的代码:
<?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语句,说“if $ myquery没有找到任何结果,然后$ nompac =”找不到名字。“所以我在WHILE语句之后写了这个:
if ( $nompac = "" ) {
$nompac = "Name not found";
$idpac = "0";
}
但它只是忽略了代码,好像我没有写任何东西:(
好的,我按照忧郁先生的建议添加了代码。现在看起来像这样:
<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
我添加了!空而不是空,我很高兴它似乎工作但事实证明即使查询创建了正确的名称,它每次都回显“名称未找到”,所以回到正方形一:(
答案 0 :(得分:1)
在开始while循环之前,您需要一种方法来判断$myquery
是否为空。这样的事情可以解决问题:
if ( empty( $myquery ) ) {
echo "<strong><option value=''>Name not found</option></strong>";
} else {
while ( $myquery->fetch() ) {
echo "<strong><option value='".$idpac."'>".$nompac."</option></strong>";
}
}
答案 1 :(得分:0)
由于我在这里没有进一步的答案,我不得不在另一个论坛上提问,他们提出了解决方案!
只是让你知道,我用过:
if ( $myquery->num_rows==0 ) {
这就像一个魅力!