За последние 24 часа нас посетили 21107 программистов и 1111 роботов. Сейчас ищут 425 программистов ...

PHP пагинация

Тема в разделе "Сделайте за меня", создана пользователем aslan2030, 21 фев 2017.

Метки:
  1. aslan2030

    aslan2030 Новичок

    С нами с:
    19 янв 2017
    Сообщения:
    3
    Симпатии:
    0
    lib.php:
    <form class="login" method="POST" action="resPage.php?categories=<?php echo $_GET[categories] ?>">
    <select class="form-control" name="specialty" id="specialty" class="specialty">
    <option value="Выберите специальность">Выберите специальность</option>
    <?php specialty() ?>
    </select>
    <br>
    <input class="form-control" type="text" placeholder="Найти..." id="title" class="search" name="search">
    <br/>
    <input type="radio" name="key" value="all" id="key0" checked>
    <label for="key0">Выбрать все</label><br/>
    <input type="radio" name="key" value="description" id="key1">
    <label for="key1">Описание</label><br/>
    <input type="radio" name="key" value="title" id="key2">
    <label for="key2">Название</label><br/>
    <input type="radio" name="key" value="author" id="key3">
    <label for="key3">Автор</label><br/>
    <button class="btn btn-primary" type="submit" name="submit" id="btn">Поиск</button>
    <br/><br/>
    </form>
    Вот resPage.php:
    ....
    <section>


    <?php resources(); ?>

    <
    /section>
    ....





    Вот php скрипт:


    //---------------------ПОИСК-----ПОИСК----ПОИСК------------------------
    define("PER_PAGE",15);
    $page = $_GET['page'];
    $page = $page*PER_PAGE;


    function preview($sql){
    global $page;

    $res = mysql_query($sql);
    $nums = mysql_num_rows($res);
    $num = ceil($nums/PER_PAGE);

    $sql .= " LIMIT ".$page.", ".PER_PAGE."";
    $newRes = mysql_query($sql);


    if($newRes){
    $row=mysql_num_rows($newRes);

    if($row>0){
    while ($resources = mysql_fetch_array($newRes)){
    echo '<div class="block">';
    echo '<a href="resource.php?id='.$resources['resources_id'].'"><h3>'.$resources['title'].'</h3></a>';
    $string = substr($resources['description'], 0, 300);
    $string = rtrim($string, "!,.-");
    echo '<h4>'.$string.'</h4>';
    echo '<h5>'.'Категория : '.$resources['categories'].'</h5>';
    $author = $resources["surname"]." ".mb_substr($resources["name"],0,1,'UTF-8').".".mb_substr($resources["middlename"],0,1,'UTF-8').".";
    echo '<h5>'.'Автор : '.$author.'</h5>';
    echo '</div>';
    };
    for($i=0;$i<=$num;$i++){
    echo "<a href='resPage.php?categories=".$_GET['categories']."&page=".$i."'>".$i."</a> ";
    }; // это вывод колич страниц


    }else{
    echo "<p class='errmsg'>По Вашему запросу ничего не найдено!</p>";
    }
    }

    }

    function spec(){
    $sql = "SELECT * FROM resources
    LEFT JOIN users ON users.id=resources.author_id
    LEFT JOIN categories ON categories.categories_id=resources.categories_id
    LEFT JOIN specialty ON specialty.specialty_id=resources.specialty_id
    WHERE
    categories.categories LIKE '%$_GET[categories]%'
    AND
    specialty.specialty LIKE '%$_POST[specialty]%'
    ";
    preview($sql);
    }


    ........


    function resources() {
    $cat=$_GET['categories'];
    $spec=$_POST['specialty'];
    $key=$_POST['key'];
    $search=$_POST['search'];

    if($spec=="Выберите специальность" and ( empty($search) )){
    echo "<p class='errmsg'>Что ищем? или Выберите специальность</p>";
    }elseif($key=="author" and $spec!="Выберите специальность" and !empty($search)){
    fullSearch();
    }else if($key=="all"){
    if($spec!="Выберите специальность" or ( !empty($search) )){
    if(empty($search)){
    spec();
    }else if($spec=="Выберите специальность"){
    search();
    }else if($spec!="Выберите специальность" and !empty($search) ){
    specSearch();
    }
    }
    }else if($key!="all" and $key!="author"){
    keySearch($key);
    }else if($key!="all" and $key=="author"){
    search();
    }
    }

    //---------------------ПОИСК-----ПОИСК----ПОИСК------------------------



    При переходе на любую страницу выводится такая ошибка

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\OpenServer\domains\apk-lib\functions.php on line 337
     
    #1 aslan2030, 21 фев 2017
    Последнее редактирование модератором: 21 фев 2017
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Код нужно нормально оформлять.

    PHP:
    1. $res = mysql_query($sql);
    2. $nums = mysql_num_rows($res);
    В $res у тебя приходит false,отсюда последующий вызов функции дает Warning, так как ты туда передаешь false.Так что проблема где то в запросе.И на будущее,не используй mysql его уже давно убрали.Оно реально устарело.Что же вы все им пользуетесь до сих пор.
     
    denis01 нравится это.