[ pijavica. @ 03.02.2014. 14:26 ] @
Da li mozete da mi pomognete. Pokusao sam puno da nekako uradim ali nikako da krene.

Nasao sam Pagination kod i zelim da napravim Search.

Pokusao sam dosto toga ali nije mi uspelo da li mozete da mi pomognete

Kako da u ovom kodu Pagination napravim Search.

Hvala vam puno.

Code:

<body>
<?php
    //connect to the database
mysql_connect('localhost', 'root', 'root') or die(mysql_error());
mysql_select_db('lr') or die(mysql_error());
    
    //get the function
function pagination($query, $per_page = 10,$page = 1, $url = '?'){        
    $query = "SELECT COUNT(*) as `num` FROM {$query}";
    $row = mysql_fetch_array(mysql_query($query));
    $total = $row['num'];
    $adjacents = "2"; 

    $page = ($page == 0 ? 1 : $page);  
    $start = ($page - 1) * $per_page;                                
    
    $prev = $page - 1;                            
    $next = $page + 1;
    $lastpage = ceil($total/$per_page);
    $lpm1 = $lastpage - 1;
    
    $pagination = "";
    if($lastpage > 1)
    {    
        $pagination .= "<ul class='pagination'>";
                $pagination .= "<li class='details'>Page $page of $lastpage</li>";
        if ($lastpage < 7 + ($adjacents * 2))
        {    
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<li><a class='current'>$counter</a></li>";
                else
                    $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))
        {
            if($page < 1 + ($adjacents * 2))        
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                }
                $pagination.= "<li class='dot'>...</li>";
                $pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";        
            }
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
            {
                $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                $pagination.= "<li class='dot'>...</li>";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                }
                $pagination.= "<li class='dot'>..</li>";
                $pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";        
            }
            else
            {
                $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                $pagination.= "<li class='dot'>..</li>";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                }
            }
        }
        
        if ($page < $counter - 1){ 
            $pagination.= "<li><a href='{$url}page=$next'>Next</a></li>";
            $pagination.= "<li><a href='{$url}page=$lastpage'>Last</a></li>";
        }else{
            $pagination.= "<li><a class='current'>Next</a></li>";
            $pagination.= "<li><a class='current'>Last</a></li>";
        }
        $pagination.= "</ul>\n";        
    }


    return $pagination;


    
        $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
        $limit = 2;
        $startpoint = ($page * $limit) - $limit;
        
        //to make pagination
        $statement = "article WHERE active = 1";
        
            //show records
            $query = mysql_query("SELECT * FROM {$statement} LIMIT {$startpoint} , {$limit}");
            
            while ($row = mysql_fetch_assoc($query)) {
            $id = $row ['id'];
            $name = $row ['name_article'];
            $price = $row ['price'];
       
            echo "<div>
            $id<br><b>
            $name</b><br>
            $price<br>
            <p></div>";
      
            }

    echo pagination($statement,$limit,$page);
?>
</body>
</html>
[ ivanhooo @ 03.02.2014. 14:59 ] @
Evo na brzinu, testiraj, pa javi.

Code:

<body>
<?php
    //connect to the database
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('es') or die(mysql_error());
    
    //get the function
function pagination($query, $per_page = 10,$page = 1, $url = '?'){        
    $query = "SELECT COUNT(*) as `num` FROM {$query}";
    $row = mysql_fetch_array(mysql_query($query));
    $total = $row['num'];
    $adjacents = "2"; 

    $page = ($page == 0 ? 1 : $page);  
    $start = ($page - 1) * $per_page;                                
    
    $prev = $page - 1;                            
    $next = $page + 1;
    $lastpage = ceil($total/$per_page);
    $lpm1 = $lastpage - 1;
    
    $pagination = "";
    if($lastpage > 1)
    {    
        $pagination .= "<ul class='pagination'>";
                $pagination .= "<li class='details'>Page $page of $lastpage</li>";
        if ($lastpage < 7 + ($adjacents * 2))
        {    
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<li><a class='current'>$counter</a></li>";
                else
                    $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))
        {
            if($page < 1 + ($adjacents * 2))        
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                }
                $pagination.= "<li class='dot'>...</li>";
                $pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";        
            }
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
            {
                $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                $pagination.= "<li class='dot'>...</li>";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                }
                $pagination.= "<li class='dot'>..</li>";
                $pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";        
            }
            else
            {
                $pagination.= "<li><a href='{$url}page=1'>1</a></li>";
                $pagination.= "<li><a href='{$url}page=2'>2</a></li>";
                $pagination.= "<li class='dot'>..</li>";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";                    
                }
            }
        }
        
        if ($page < $counter - 1){ 
            $pagination.= "<li><a href='{$url}page=$next'>Next</a></li>";
            $pagination.= "<li><a href='{$url}page=$lastpage'>Last</a></li>";
        }else{
            $pagination.= "<li><a class='current'>Next</a></li>";
            $pagination.= "<li><a class='current'>Last</a></li>";
        }
        $pagination.= "</ul>\n";        
    }


    return $pagination;


    
        $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
        $limit = 1;
        $startpoint = ($page * $limit) - $limit;
        
        //to make pagination
        if (isset($_GET['article_name']) AND $_GET['article_name'] != '') {
            $statement = "test WHERE name_article LIKE '%".mysql_real_escape_string($_GET['article_name'])."%' AND active = 1";
            $url = '?article_name=' . $_GET['article_name'] . '&';
        } else {
            $statement = "test WHERE active = 1";
        }
        
            //show records
            $query = mysql_query("SELECT * FROM {$statement} LIMIT {$startpoint} , {$limit}");
            
            while ($row = mysql_fetch_assoc($query)) {
            $id = $row ['id'];
            $name = $row ['name_article'];
            $price = $row ['price'];
       
            echo "<div>
            $id<br><b>
            $name</b><br>
            $price<br>
            <p></div>";
      
            }

    echo pagination($statement,$limit,$page,$url);
?>
<hr />
<form name="test" method="get" action="1.php">
    Article Name: <input type="text" name="article_name" value=""/>
    <input type="submit" value="Search" />
</form>
</body>
</html>


samo sam promenio naziv tabele u test.
[ pijavica. @ 03.02.2014. 15:51 ] @
Ne funkcionise.

Izlazi ovo:
Not Found
The requested URL /proba/1.php was not found on this server.

Code:
<form name="test" method="get" action="1.php">

nemam 1.php

umesto toga stavim index.php

isto ne funkcionise

ne znam u cemu je problem
[ dakipro @ 03.02.2014. 20:58 ] @
Probaj da objasnis malo detaljnije ovaj deo "nikako da krene" kao i "isto ne funkcionise"
sta se desava, jel logicka greska, jel dobijes neki notification, jel dobijes blank page, 404, 500, koju gresku dobijes odnosno kako znas da ne funkcionise?
[ pijavica. @ 04.02.2014. 10:56 ] @
Kada pokrenem index.php fajl preko localhost prikaze mi ovo:
Code:

18
jabuka 1kg
2456.00

Notice: Undefined variable: url in C:\Webserver\www\proba\index.php on line 126

Bas kao sto vidis prikazuje bez da pretrazujem nesto pokaze mi artikal koji imam. Isto tako problem u liniji 126
kada kliknem u Pagination za drugu stranu izbaci problem ovako:
Code:
Not Found

The requested URL /proba/page=2 was not found on this server.


Kada ukucam u pretrazivac jedan od artikala koje imam u bazi, treba jabuka,
Izlazi ovo:
Code:
Not Found
The requested URL /proba/1.php was not found on this server.


Upravo tako izgleda kao sto sam objasnio.
a pokusao sam razne varijante i isti problem.
[ ivanhooo @ 04.02.2014. 12:47 ] @
Ne razumem. Meni radi kako treba.
[ ivanhooo @ 04.02.2014. 12:50 ] @
Moras da mu das $url parametar u onom if-u.

Code:

//to make pagination
        if (isset($_GET['article_name']) AND $_GET['article_name'] != '') {
            $statement = "test WHERE name_article LIKE '%".mysql_real_escape_string($_GET['article_name'])."%' AND active = 1";
            $url = '?article_name=' . $_GET['article_name'] . '&';
        } else {
            $statement = "test WHERE active = 1";
            $url = '?';
        }
[ pijavica. @ 04.02.2014. 13:48 ] @
ivanhooo $url parametar funkcionise. Sa Pagination ok.

Zasto mi automatski prikaze sve artikle koje imam u bazi kada pokrenem index.php
zar bi trebalo da bude prazno i kada krenem nesto da trazim da mi tek pokaze rezultat pretrage.
[ pijavica. @ 04.02.2014. 14:47 ] @
ivanhooo i dakipro

resio sam problem.

Hvala vam na vasoj pomoci.