Первая строка из результата запроса MySQL не отображается

Следующий PHP-код работает нормально, несмотря на одно действительно странное поведение. Первый элемент всегда не учитывается. Позвольте мне пояснить пример. Представьте, что у меня в моем db следующие элементы для столбца srl_loc:

  • Париж (75)
  • Париж (75001)
  • Париж (75002)
  • Париж (75003)

Если $ term = «Paris», то первый пункт «Paris (75)» будет лишен выхода. Файл php показывает только следующее:

  • Париж (75001)
  • Париж (75002)
  • Париж (75003)

Надеюсь, кто-то может помочь. Заранее благодарю за ваши ответы. Приветствия. Марк.

Мой 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)); ?> 

Solutions Collecting From Web of "Первая строка из результата запроса MySQL не отображается"

Вы вызываете 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)); ?> в <?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)); ?> в <?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']));} в while($row=mysql_fetch_assoc($result)){ array_push($return,array('value'=>$row['srl_loc']));} 

Вот где вы читаете и отбрасываете первую запись в наборе результатов