Кнопка «Далее» не обновляет страницу со следующими 25 результатами

0

У меня есть код ниже, и я пытаюсь получить следующие 25 результатов из моей таблицы sql, чтобы они появились на странице. Однако всякий раз, когда я нажимаю следующую кнопку, информация не отображается. У меня есть смещение = ($ page - 1) * $ items_per_page...... Я изо всех сил пытаюсь понять это, поскольку это кажется настолько простым по сравнению с другим кодом, который я написал, но оказывается очень неуловимым для я.... любая помощь была бы весьма признательна. Моя основная проблема заключается в том, что следующая ссылка не предоставляет следующие 25 результатов, и я не могу определить, почему и как исправить.

                            echo "<h3 style='text-align:center;'>Welcome to the Exchange Portal,&nbsp;" . $row['name'] . "!&nbsp;</h3>";


                            $items_per_page = 25;


                            $sql_count = "SELECT pin, title, title2, email, phone FROM crown_acura";
                            $result_cnt = mysqli_query($conn, $sql_count);

                            if(false === $result_cnt) {
                                throw new Exception('Query failed with: ' . mysqli_error());
                                } else {
                                   $row_count = mysqli_num_rows($result_cnt);
                                   // free the result set as you don't need it anymore
                                   //mysqli_free_result($result_cnt);
                                }

                                echo $row_count;
                                echo "&nbsp;";

                                if (!isset($_GET['Page'])) {
                                    $Page = 1;
                                } else {
                                    $Page = $_GET['Page'];
                                }
                                echo $page;
                                echo "&nbsp;";

                                $page_count = 0;
                                if (0 === $row_count) {  
                                    // maybe show some error since there is nothing in your table
                                } else {
                                  // determine page_count
                                   $page_count = (int)ceil($row_count / $items_per_page);
                                   // double check that request page is in range
                                   if($page > $page_count) {
                                        // error to user, maybe set page to 1
                                        $page = 1;
                                   }
                                }
                                echo "&nbsp;";
                                echo $page_count;
                                echo "&nbsp;";
                                echo $items_per_page;

                                $offset = ($page-1)*$items_per_page;


                                //echo $paging_info;
                                //echo "&nbsp;";
                                echo "<br />";

                            //Query for displaying results
                            $list_sql = "SELECT pin, title, title2, email, phone FROM crown_acura LIMIT $offset, $items_per_page";
                            $result_query = $conn->query($list_sql);

                                //Table for displaying query results
                                echo "<table class='verify'>";
                                echo "<tr >";
                                echo "<td><h3>Name</h3></td><td>&nbsp;</td><td><h3>E-mail</h3></td><td><h3>Phone</h3></td>";
                                echo "</tr>";
                                for($i = 1; $i<= $page_count; $i++) {
                                    if ($result_query->num_rows > 0) {
                                        // output data of each row
                                        while($row3 = mysqli_fetch_array($result_query)) {
                                            echo "<tr>";
                                            echo "<td class='dltd2 dlcl'>" . $row3["title"] . "</td><td>" . $row3["title2"] . "</td><td><a href='mailto:" . $row3['email'] . "'>" . $row3["email"] . "</a>&nbsp;</td><td>" . $row3["phone"] . "&nbsp;</td>";
                                            echo "</tr>";   
                                        }
                                    } else {
                                        echo "0 results";   
                                    }
                                }
                                echo "<tr></tr>";


                                $next_page = $page + 1;
                                $last_page = $page - 1;

                                if($paging_info['curr_page'] <= 1) {
                                    echo "<tr>";
                                    echo "<td></td><td colspan='2'><a class='loadlink' href='" . $_PHP_SELF . "'>Next 25</a></td><td></td>";
                                    echo "</tr>";
                                } elseif ($paging_info['curr_page'] < $page_count) {
                                        echo "<tr>";
                                        echo "<td></td><td><a href='" . $_PHP_SELF . "?page=" . $last_page . "'>Prev 25</a></td><td><a href='" . $_PHP_SELF . "?page=" . $next_page . "'>Next 25</a></td><td></td>";
                                        echo "</tr>";
                                        } elseif ($paging_info['curr_page'] === $page_count) {
                                            echo "<tr>";
                                            echo "<td></td><td colspan='2'><a href='" . $_PHP_SELF . "?page=" . $last_page . "'>Prev 25</a></td><td></td>";
                                            echo "</tr>";
                                            }

                                echo "</table>";
                    }
                }
            }
  • 0
    Какова цель вашего цикла for($i = 1; $i<= $page_count; $i++) ? Почему вы пытаетесь сделать while($row3 = mysqli_fetch_array($result_query)) для каждой страницы?
  • 0
    Я не совсем уверен .... не то чтобы вы упомянули об этом.
Теги:

2 ответа

1

Вы пытались запустить обработанный SQL.

Вывод в браузер:

"SELECT pin, title, title2, email, phone FROM crown_acura LIMIT $offset, $items_per_page" 
  • 0
    Вы можете расширить это? мой запрос фактически выполняется, так как он отображает запрошенную информацию и ограничивает ее первыми 25 (или следующими 25, если я вручную изменяю значение переменной $ offset).
  • 0
    echo ($ list_sql) - чтобы увидеть, что отправляется в MYSQL.
Показать ещё 2 комментария
-2

попробуйте это... и измените $ page для разных значений (2,3,... и т.д.),

<?php

$items_per_page = 25;

$sql_count = "SELECT pin, title, title2, email, phone FROM crown_acura";
$result_cnt = mysqli_query($conn, $sql_count);

if (false === $result_cnt) {
    throw new Exception('Query failed with: ' . mysqli_error());
} else {
    $row_count = mysqli_num_rows($result_cnt);
    // free the result set as you don't need it anymore
    //mysqli_free_result($result_cnt);
}

echo $row_count;
echo "&nbsp;";

if (!isset($_GET['Page'])) {
    $Page = 1;
} else {
    $Page = $_GET['Page'];
}
echo $page;
echo "&nbsp;";

$page_count = 0;
if (0 === $row_count) {
    // maybe show some error since there is nothing in your table
} else {
    // determine page_count
    $page_count = (int)ceil($row_count / $items_per_page);
    // double check that request page is in range
    if ($page > $page_count) {
        // error to user, maybe set page to 1
        $page = 1;
    }
}
echo "&nbsp;";
echo $page_count;
echo "&nbsp;";
echo $items_per_page;

$offset = ($page - 1) * $items_per_page;


//echo $paging_info;
//echo "&nbsp;";
echo "<br />";

//Query for displaying results
$list_sql = "SELECT pin, title, title2, email, phone FROM crown_acura LIMIT $offset, $items_per_page";
$result_query = $conn->query($list_sql);


echo ("RESULTS: ".$result_query->num_rows());

?>

  • 0
    В образовательных целях всегда полезно написать описание того, почему, по вашему мнению, ваш код работает, что вы изменили по сравнению с исходным кодом или где была ошибка ОП.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню