#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;
}
Это возвращает значения в одной строке. как мне получить доступ только к значению в последней строке?