возвращает одно значение в строке выборки в mysql

#php #mysql #row #fetch

#php #mysql #строка #выборка

Вопрос:

у меня есть запрос строки выборки, который возвращает

10 9 8 7 6 5 4 3 2 1

однако я хочу вернуть только последнее значение, которое в данном случае равно «1».

я пытался сделать echo row[0][9] , но это не работает. как мне получить последнее значение?

Комментарии:

1. Не говоря уже об операторах SQL. Вопросы всегда должны содержать минимальный пример кода , чтобы сделать их более понятными.

Ответ №1:

вы можете использовать end() функцию

 $row = array(10, 9, 8, 7);
echo end($row); // displays 7
  

Ответ №2:

 <?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // the email value
?>
  

Взгляните на этот пример. Скопировано отсюда. Вы должны быть в состоянии достичь того, чего хотели, взглянув на приведенный выше пример.

Если вы знаете, что такое индекс столбца, то все в порядке. Но если вам ВСЕГДА нужен последний столбец, взгляните на функцию mysql_num_fields.

Ответ №3:

Попробуйте echo explode(' ', $row[0])[9]

Прошло некоторое время с тех пор, как я делал PHP, YMMV.

Ответ №4:

вы должны отсортировать свою таблицу по DESC ключевому слову.

Ответ №5:

Я бы сделал все это на стороне MySQL, чтобы вы не слишком разделяли логику между PHP и MySQL (если это применимо в данном случае) и использовали запрос с LIMIT 1 и ORDER BY DESC (или ASC, в зависимости от вашей таблицы).

Ответ №6:

Вам нужна только 10-я последняя строка, которая была добавлена в таблицу? Это будет 10-й идентификатор в списке, если вы отсортируете его по убыванию. Если это то, что вы хотите, вы также можете сказать MySQL, чтобы он вернул именно эту строку. Запрос становится немного сложнее, хотя:

 SELECT t1.*
FROM table t1
INNER JOIN (
  SELECT id
  FROM table
  ORDER BY id DESC
  LIMIT 10
) t2 ON t1.id = t2.id
ORDER BY t1.id ASC
LIMIT 1
  

Комментарии:

1. Его пример возвращает только одну строку, которая представляет собой разделенную пробелом строку чисел.

2. Возможно, вы правы, и в этом случае мой ответ не имеет особого смысла. Steph должен показать код, который производит вывод, и, возможно, мне следует подождать, пока этот код не станет доступен.

Ответ №7:

Вот мой код.

 $query="SELECT blog_id FROM myblogs_view where blog_id<'$id' ORDER BY blog_id DESC LIMIT 10";
$result=mysql_query($query);
while($row=mysql_fetch_row($result) or die(mysql_error())) {
    echo $row;
}
  

Это возвращает значения в одной строке. как мне получить доступ только к значению в последней строке?