Печатать только определенное количество ячеек в PHP

#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. Отредактировано, это то, что вы ищете?