У меня есть следующий код, который извлекает одну строку:
$query = "SELECT * FROM translations WHERE iddoc = '$id' AND submitted = 1;"; $result = mysqli_query($query); $row = mysqli_fetch_array($result);
Я знаю, что это полезно в цикле while, где вы можете просто просмотреть результаты.
Но мне нужно уметь захватывать определенные строки, соответствующие этому условию. Что-то, что следует за этим псевдокодом:
$query = "SELECT * FROM translations WHERE iddoc = '$id' AND submitted = 1;"; $result = mysqli_query($query); $arrayofrows = mysqli_fetch_arrayofrows($result); $arrayofrows[0] //(to get the first row) $arrayofrows[1] //(2nd row)
и так далее…
Как я могу это сделать?
Вы можете попробовать что-то вроде этого
$arrayofrows = array(); while($row = mysqli_fetch_array($result)) { $arrayofrows = $row; }
Теперь у вас есть
$arrayofrows[0] //(to get the first row) $arrayofrows[1] //(2nd row)
Я думаю, что функция, которую вы ищете, – mysqli_fetch_all, как показано ниже. Это позволяет избежать необходимости создания дополнительной структуры цикла или функции для выполнения уже предоставленного.
$query = "SELECT * FROM translations WHERE iddoc = '$id' AND submitted = 1;"; $result = mysqli_query($query); $arrayofrows = mysqli_fetch_all($result); $arrayofrows[0] //(to get the first row) $arrayofrows[1] //(2nd row)
Это зависит от того, требуется ли вам весь набор результатов или нет, но я думаю, что LIMIT можно использовать как:
$query = "SELECT * FROM translations WHERE iddoc = '$id' AND submitted = 1 LIMIT 200,200;";
В противном случае, как говорят другие, вам нужно будет преобразовать в массив (что и делает fetch_all
), а затем получить элемент из этого массива.