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("<div id=norequests>No results for <strong>$q</strong></div>");

}
elseif($rows > 0)
{
while($row = MysqL_fetch_array($query))
{

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

}

print("$code: $name<br /> <br />");
}

}


else{
    echo '<div id="error">No results for $q.</div>';
}

解决方法:

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

在循环内打印

while($row = MysqL_fetch_array($query))
{
    $name = htmlspecialchars($row['name']);
    $code = htmlspecialchars($row['id_code']);
    print("$code: $name<br /> <br />");
}

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

$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);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...