[英]First row from MySQL query result not being displayed
尽管有一种非常奇怪的行为,但以下php代码仍能正常工作。 第一项始终被忽略。 让我用一个例子来阐明。 想象一下,我在数据库中有srl_loc列的以下项目:
如果$ term =“ Paris”,则第一项“ Paris(75)”将被忽略。 php文件仅显示以下内容:
希望有人能帮忙。 预先感谢您的答复。 干杯。 渣。
我的PHP:
<?php
header('Content-Type: text/html; charset=utf-8');
require("../inc/connect.inc.php");
mysql_set_charset('utf8');
$term = mysql_real_escape_string($_GET['term']);
$result = mysql_query('SELECT * FROM search_loc WHERE srl_loc LIKE "' . $term . '%"');
$row=mysql_fetch_assoc($result);
$return = array();
while($row=mysql_fetch_assoc($result)){
array_push($return,array('value'=>$row['srl_loc']));}
echo(json_encode($return));
?>
您将调用mysql_fetch_assoc两次,一次在$ return =之前,然后每次循环一次。 第一个被丢弃,因此丢失了行。
因此,应为:
<?php
header('Content-Type: text/html; charset=utf-8');
require("../inc/connect.inc.php");
mysql_set_charset('utf8');
$term = mysql_real_escape_string($_GET['term']);
$result = mysql_query('SELECT * FROM search_loc WHERE srl_loc LIKE "' . $term . '%"');
$return = array();
while($row=mysql_fetch_assoc($result)){
array_push($return,array('value'=>$row['srl_loc']));}
echo(json_encode($return));
?>
取出第一个$row=mysql_fetch_assoc($result);
<?php
header('Content-Type: text/html; charset=utf-8');
require("../inc/connect.inc.php");
mysql_set_charset('utf8');
$term = mysql_real_escape_string($_GET['term']);
$result = mysql_query('SELECT * FROM search_loc WHERE srl_loc LIKE "' . $term . '%"');
$return = array();
while($row=mysql_fetch_assoc($result)){
array_push($return,array('value'=>$row['srl_loc']));}
echo(json_encode($return));
?>
你在打电话
$row=mysql_fetch_assoc($result);
在您开始遍历记录之前
while($row=mysql_fetch_assoc($result)){
array_push($return,array('value'=>$row['srl_loc']));}
那就是您要读取并丢弃结果集中的第一条记录的地方
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.