Итак, у меня есть состояние выбора SELECT * FROM Users WHERE age = 21 LIMIT 10
в моем php-скрипте.Прямо сейчас я должен пройтись по строкам, чтобы получать новые строки данных.Как я могу это сделать, чтобы он превратил мне все данные в O(1)
сложность времени?Прямо сейчас у меня есть цикл while, который делает его O(n)
.
function search($stmt, $age) {
$sql = "SELECT * FROM Users
WHERE age = ?
LIMIT 10";
if(!mysqli_stmt_prepare($stmt, $sql)) {
return false;
} else {
mysqli_stmt_bind_param($stmt, "i", $age);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$outfitArray = [];
while($row = mysqli_fetch_assoc($result)) {
$searchResults[] = $row;
}
return $searchResults;
}
}
$conn = mysqli_connect($servername, $dBUsername, $dbPassword, $dbName);
if($conn != false) $stmt = mysqli_stmt_init($conn);
print_r(search($stmt, 21));
Мой второй вопрос: какой оператор select я использую, чтобы увидеть смещение.Так что, если я получу 50 результатов, как я могу получить результаты, которые являются 40-м - 50-м?
Мой третий вопрос: как я могу получить количество результатов в поиске без поместить все результаты в массив или использовать цикл?Затем используйте что-то вроде count()
, чтобы увидеть, сколько предметов есть.