php将查询的结果显示,PHP-为什么此查询仅显示一个结果?

以下查询将用作搜索脚本.由于某种原因,在任何一个条件为真的情况下,它都不会返回所有结果.我究竟做错了什么?

$sql = "SELECT name, id_code from codes WHERE name LIKE '%$q%' OR id_code

LIKE '%$q%'";

$result = mysql_query($sql);

$query = mysql_query($sql) or die ("Error: ".mysql_error());

$num_rows1 = mysql_num_rows($result);

if ($result == "")

{

echo "";

}

echo "";

$rows = mysql_num_rows($result);

if($rows == 0)

{

print("

No results for $q
");

}

elseif($rows > 0)

{

while($row = mysql_fetch_array($query))

{

$name = htmlspecialchars($row['name']);

$code = htmlspecialchars($row['id_code']);

}

print("$code: $name
");

}

}

else{

echo '

No results for $q.
';

}

解决方法:

您正在一阵子外面打印.这意味着,无论您获得多少结果,都只会打印出一个结果.

在循环内打印

while($row = mysql_fetch_array($query))

{

$name = htmlspecialchars($row['name']);

$code = htmlspecialchars($row['id_code']);

print("$code: $name
");

}

或在循环时将变量收集在数组中,并根据需要在循环后使用它们

$result_array = array();

while($row = mysql_fetch_array($query))

{

$name = htmlspecialchars($row['name']);

$code = htmlspecialchars($row['id_code']);

$result_array[] = array(

'name' => $name,

'code' => $code

);

}

print_r($result_array);

标签:php,search

来源: https://codeday.me/bug/20191013/1905358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值