Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Июль 2017
Помог: 0 раз(а)
|
Господа программисты прошу помочь, моей тупой душе ... суть в том что есть кусок кода который отображает новости из BD ... и есть кусок кода который создает постраничный просмотр, но 3 дня мучений и 2 полушария моего мозга не смогли сделать постраничный просмотр статей из BD. П.с разделил все на блоки из который собрал, да бы каши была ... но в ней хоть разобраться было можно
PHP:
скопировать код в буфер обмена
<?PHP $pdo = null; function connect_to_db() { $dbengine = 'mysql'; $dbhost = 'localhost'; $dbuser = 'root'; $dbpassword = ''; $dbname = 'news'; try{ $pdo = new PDO("".$dbengine.":host=$dbhost; dbname=$dbname", $dbuser,$dbpassword); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); return $pdo; } catch (PDOException $e){ $e->getMessage(); } } ?> <?PHP function fetchNews( $conn ) { $request = $conn->prepare(" SELECT news_id, news_title, news_img_short, news_short_description, news_author, news_published_on FROM info_news ORDER BY news_published_on DESC "); return $request->execute() ? $request->fetchAll() : false; } function getAnArticle( $id_article, $conn ) { $request = $conn->prepare(" SELECT news_id, news_title, news_img_short, news_full_content, news_author, news_published_on FROM info_news WHERE news_id = ? "); return $request->execute(array($id_article)) ? $request->fetchAll() : false; } function getOtherArticles( $differ_id, $conn ) { $request = $conn->prepare(" SELECT news_id, news_title, news_img_short, news_short_description, news_full_content, news_author, news_published_on FROM info_news WHERE news_id != ? "); return $request->execute(array($differ_id)) ? $request->fetchAll() : false; } ?> CODE ( html):
скопировать код в буфер обмена
<html> <head> <title>Welcome to news channel</title> <link rel="stylesheet" type="text/css" href="design/style.css"> </head> <body> <div class="news"> <?php // get the database handler $dbh = connect_to_db(); // Fecth news $news = fetchNews($dbh); ?> <?php if ( $news && !empty($news) ) :?> <?php foreach ($news as $key => $article) :?> <h2><a href="read-news.php?newsid=<?= $article->news_id ?>"><?= stripslashes($article->news_title) ?></a></h2> <p><?= stripslashes($article->news_short_description) ?><img src="<?= stripslashes($article->news_img_short) ?>"></p> <?php endforeach?> <?php endif?> </div> </body> </html>
<?PHP $total_articles_number = 5; //общее количество статей $articles_per_page=2; // количество статей на странице //получаем количество страниц $total_pages = ceil($total_articles_number/$articles_per_page); // запускаем цикл - количество итераций равно количеству страниц for ($i=0; $i<$total_pages; $i++) { // получаем значение $from (как $page_number) для использования в формировании ссылки $page_number=$i*$articles_per_page; // если $page_number (фактически это проверка того является ли $from текущим) не соответствует // текущей странице, // выводим ссылку на страницу со значением $from равным $page_number if ($page_number!=$from) echo "<a href='".$PHP_SELF."?from=".$page_number."'> ".($i+1). " </a>"; // иначе просто выводим номер страницы - данная строка необязательна, // пропустив ее вы просто получите линк на текущую страницу else echo $i+1; // если page_number - текущая страница - ничего не выводим (ссылку не делаем) } ?>
|