#php #sql #database
#php #sql #База данных
Вопрос:
Я извлекаю некоторые данные из базы данных на PHP, однако я хочу распечатать их только в том случае, если этот номер записи является определенным значением. Например, если это меньше, чем номер результата 11. Я хочу сделать разбивку на страницы, которую вы видите. В моей базе данных около 30 записей для определенной области, но я хочу, чтобы она печатала только 10 на одной странице. Вот мой код
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$descriptiontype = $row["description"];
$minorscript = implode(' ', array_slice(explode(' ', $descriptiontype), 0, 7))."<a href = 'ticket.php?id=GS" . $row["id"]. "'>...(See More)</a>";
$currentstatus = $row["status"];
$filevar = $row["screenshot_url"];
if ($filevar === "") {
$filelink = "</td><td>None</td><td>";
}
else {
$filelink = "</td><td><a href='upload/" . $row["screenshot_url"] . "'>View</a></td><td>";
}
echo "<tr><td><a href = 'ticket.php?id=GS" . $row["id"]. "'>Edit</a></td><td>". $row["id"]. "</td><td>". $row["raised_by"]. "</td><td>" . $row["date_time"] . "</td><td><a href='" . $row["webaddress"] . "'>" . $row["webaddress"] . "</a></td><td>" . $minorscript . $filelink . "<div class = '$currentstatus'>" . $row["status"] . "</div></td></tr>" ;
}
} else {
echo "0 results";
}
Комментарии:
1. Дайте нам содержимое $ sql.
2. ВЫБЕРИТЕ id, raised_by, date_time, webaddress, description, screenshot_url, owner, status ИЗ заказа на генерацию по идентификатору desc
3. «выполнять разбивку на страницы» — довольно широкое понятие. Вы конкретно спрашиваете, какие ключевые слова использовать в SQL для разбивки результатов на страницы? У вас возникли проблемы с поддержанием состояния страницы, на которой находится пользователь? Что-то еще? Вы также можете воспользоваться любым из большого разнообразия инструментов, которые выполняют большую часть тяжелой работы на стороне клиента за вас. Например: datatables.net
Ответ №1:
С помощью вашего запроса $ sql вы можете выполнять OFFSET X FETCH NEXT Y ROWS ONLY
со значениями X и Y из вашего PHP.
Например :
SELECT id, raised_by, date_time, webaddress, description, screenshot_url, owner, status
FROM gensupport
ORDER BY id DESC
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Это идеально подходит для разбивки на страницы, потому что X пропустит первые значения X, Y — это количество строк.
Комментарии:
1. Вот мой идентификатор ВЫБОРА sql, raised_by, date_time, веб-адрес, описание, screenshot_url, владелец, статус ИЗ заказа на генерацию по идентификатору desc
2. Отредактировано, это то, что вы ищете?