Intereting Posts
Конвертер формата HTML в PDF, который решает CSS-шрифт @ font-face? Расширение псевдонима пространства имен PHP до полной строки пространства имен Хранить его в сеансе или в базе данных запросов каждой загрузки страницы? Добавить новую строку в файл excel с использованием библиотеки phpExcel Максимальное время выполнения 300 секунд превышено в pcntl_fork () PHP Regular express для удаления тегов <h1> (и их содержимого) Горячая клавиша в PhpStorm для перехода к тегу HTML end PHP извлекает и сохраняет удаленное изображение как лучше использовать Smarty с PHP? jQuery preventDefault () не работает внутри вызова AJAX формат даты получения mdY H: i: su от миллисекунд Создание чистых URL-адресов при использовании форм Скрытие сообщения об ошибке PHP / MySQL Bootstrap Кнопка загрузки состояния загрузки JQuery, как заставить другие состояния делать то же самое Как я могу перенести PHP preg_split в Java для особого случая unserializing значения в ADODB?

Преобразование mysqli pagination в готовое разбиение на страницы

текущий рабочий код с mysqli приведен ниже. Я хотел бы преобразовать его в подготовленные заявления. существует в основном три запроса sql для преобразования в подготовленный оператор. первая часть – самая сложная часть для меня, чтобы разобраться в подготовленном способе получения значения счета, которое мне, в конце концов, удалось выяснить.

<?php // Script and tutorial written by Adam Khoury @ developphp.com // Line by line explanation : youtube.com/watch?v=T2QFNu_mivw include_once("storescripts/connect_to_mysqli.php"); // This first query is just to get the total count of rows $sql2 = "SELECT COUNT(id) FROM products "; $query2 = mysqli_query($myConnection, $sql2); $row = mysqli_fetch_row($query2); // Here we have the total row count $rows = $row[0]; // This is the number of results we want displayed per page $page_rows = 10; // This tells us the page number of our last page $last = ceil($rows/$page_rows); // This makes sure $last cannot be less than 1 if($last < 1){ $last = 1; } // Establish the $pagenum variable $pagenum = 1; // Get pagenum from URL vars if it is present, else it is = 1 if(isset($_GET['pn'])){ $pagenum = preg_replace('#[^0-9]#', '', $_GET['pn']); } // This makes sure the page number isn't below 1, or more than our $last page if ($pagenum < 1) { $pagenum = 1; } else if ($pagenum > $last) { $pagenum = $last; } // This sets the range of rows to query for the chosen $pagenum $limit = 'LIMIT ' .($pagenum - 1) * $page_rows .',' .$page_rows; // This is your query again, it is for grabbing just one page worth of rows by applying $limit $sql = "SELECT id,product_name, price FROM products ORDER BY product_name DESC $limit"; $query = mysqli_query($myConnection, $sql); // This shows the user what page they are on, and the total number of pages $textline1 = "Products (<b>$rows</b>)"; $textline2 = "Page <b>$pagenum</b> of <b>$last</b>"; // Establish the $paginationCtrls variable $paginationCtrls = ''; // If there is more than 1 page worth of results if($last != 1){ /* First we check if we are on page one. If we are then we don't need a link to the previous page or the first page so we do nothing. If we aren't then we generate links to the first page, and to the previous page. */ if ($pagenum > 1) { $previous = $pagenum - 1; $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$previous.'">Previous</a> &nbsp; &nbsp; '; // Render clickable number links that should appear on the left of the target page number for($i = $pagenum-4; $i < $pagenum; $i++){ if($i > 0){ $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; } } } // Render the target page number, but without it being a link $paginationCtrls .= ''.$pagenum.' &nbsp; '; // Render clickable number links that should appear on the right of the target page number for($i = $pagenum+1; $i <= $last; $i++){ $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; if($i >= $pagenum+4){ break; } } // This does the same as above, only checking if we are on the last page, and then generating the "Next" if ($pagenum != $last) { $next = $pagenum + 1; $paginationCtrls .= ' &nbsp; &nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next</a> '; } } $dynamicList = ''; while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ $id = $row["id"]; $product_name = $row["product_name"]; $price = $row["price"]; $dynamicList .= " <li><div class='product'> <a href='product.php?id=$id' class='info'> <span class='holder'> <img src='inventory_images/$id.jpg' alt='$product_name' /> <span class='book-name'>$product_name</span> </a> <a href='product.php?id=$id' class='buy-btn'>RM<span class='price'>$price</span></a> </div> </li> "; } // Close your database connection mysqli_close($myConnection); ?> <!DOCTYPE html> <html> <head> <style type="text/css"> body{ font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;} div#pagination_controls{font-size:21px;} div#pagination_controls > a{ color:#06F; } div#pagination_controls > a:visited{ color:#06F; } </style> </head> <body> <div> <h2><?php echo $textline1; ?> Paged</h2> <p><?php echo $textline2; ?></p> <p><?php echo $dynamicList; ?></p> <div id="pagination_controls"><?php echo $paginationCtrls; ?></div> </div> </body> </html> 

Спасибо заранее за любую помощь

Related of "Преобразование mysqli pagination в готовое разбиение на страницы"

 $stmt=$myConnection->prepare('SELECT COUNT(id) FROM products'); // Don't use bind_result()... // execute your statement $stmt->execute(); // Get result set into a MySQLi result resource $result = $stmt->bind_result($id); // array to hold all rows $rows = array(); // All results bound to output vars while ($stmt->fetch()) { // Append an array containing your result vars onto the rowset array $rows[] = array( 'id' => $id ); } $rows=$id; 

для первой части. я думаю, у тебя это есть

этот ответ был решен с использованием набора результатов Paginate, написавшего запрос с помощью подготовленных операторов, метод 2.

полный код для справки, как показано ниже. благодаря

 <?php // Script and tutorial written by Adam Khoury @ developphp.com // Line by line explanation : youtube.com/watch?v=T2QFNu_mivw include_once("storescripts/connect_to_mysqli.php"); // This first query is just to get the total count of rows $stmt=$myConnection->prepare('SELECT COUNT(id) FROM products'); // Don't use bind_result()... // execute your statement $stmt->execute(); // Get result set into a MySQLi result resource $result = $stmt->bind_result($id); // array to hold all rows $rows = array(); // All results bound to output vars while ($stmt->fetch()) { // Append an array containing your result vars onto the rowset array $rows[] = array( 'id' => $id ); } $rows=$id; // This is the number of results we want displayed per page $page_rows = 10; // This tells us the page number of our last page $last = ceil($rows/$page_rows); // This makes sure $last cannot be less than 1 if($last < 1){ $last = 1; } // Establish the $pagenum variable $pagenum = 1; // Get pagenum from URL vars if it is present, else it is = 1 if(isset($_GET['pn'])){ $pagenum = preg_replace('#[^0-9]#', '', $_GET['pn']); } // This makes sure the page number isn't below 1, or more than our $last page if ($pagenum < 1) { $pagenum = 1; } else if ($pagenum > $last) { $pagenum = $last; } $dynamicList = ""; $stmt = $myConnection->prepare('SELECT id,product_name,price FROM products ORDER BY product_name LIMIT ?,? '); $begin= ($pagenum - 1) * $page_rows; $end= $page_rows; $stmt->bind_param('ii',$begin,$end); $stmt->execute(); /* store result */ $stmt->store_result(); /* get the row count */ $count = $stmt->num_rows; if ($count >= 1) { $stmt->bind_result($id, $product_name, $price); // This shows the user what page they are on, and the total number of pages $textline1 = "Products (<b>$rows</b>)"; $textline2 = "Page <b>$pagenum</b> of <b>$last</b>"; // Establish the $paginationCtrls variable $paginationCtrls = ''; // If there is more than 1 page worth of results if($last != 1){ /* First we check if we are on page one. If we are then we don't need a link to the previous page or the first page so we do nothing. If we aren't then we generate links to the first page, and to the previous page. */ if ($pagenum > 1) { $previous = $pagenum - 1; $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$previous.'">Previous</a> &nbsp; &nbsp; '; // Render clickable number links that should appear on the left of the target page number for($i = $pagenum-4; $i < $pagenum; $i++){ if($i > 0){ $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; } } } // Render the target page number, but without it being a link $paginationCtrls .= ''.$pagenum.' &nbsp; '; // Render clickable number links that should appear on the right of the target page number for($i = $pagenum+1; $i <= $last; $i++){ $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; '; if($i >= $pagenum+4){ break; } } // This does the same as above, only checking if we are on the last page, and then generating the "Next" if ($pagenum != $last) { $next = $pagenum + 1; $paginationCtrls .= ' &nbsp; &nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next</a> '; } } while ($stmt->fetch()) { "$id, $product_name, $price,"; $dynamicList .= " <li><div class='product'> <a href='product.php?id=$id' class='info'> <span class='holder'> <img src='inventory_images/$id.jpg' alt='$product_name' /> <span class='book-name'>$product_name</span> </a> <a href='product.php?id=$id' class='buy-btn'>RM<span class='price'>$price</span></a> </div> </li> "; } } // Close your database connection mysqli_close($myConnection); ?> <!DOCTYPE html> <html> <head> <style type="text/css"> body{ font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;} div#pagination_controls{font-size:21px;} div#pagination_controls > a{ color:#06F; } div#pagination_controls > a:visited{ color:#06F; } </style> </head> <body> <div> <h2><?php echo $textline1; ?> Paged</h2> <p><?php echo $textline2; ?></p> <p><?php echo $dynamicList; ?></p> <div id="pagination_controls"><?php echo $paginationCtrls; ?></div> </div> </body> </html> 

Попробуйте отправить отчет об ошибках и посмотрите, есть ли ошибка в операциях mysqli:

 $stmt=$myConnection->prepare('SELECT id FROM products'); // due to syntax error or other reasons may be like privileges prepare can fail so if ( false===$stmt ) { // hope you will use better than die to handle but here's only example. die('prepare() failed: ' . htmlspecialchars($myConnection->error)); } $ExecuteStmt = $stmt->execute(); // execute() can also fail for various reasons. if ( false===$ExecuteStmt ) { //again same thing about die(); die('execute() failed: ' . htmlspecialchars($myConnection->error)); } $myConnection->close(); 

Надеюсь это поможет.