[ pijavica. @ 08.02.2014. 19:41 ] @
Da li mozete da mi pomognete oko ovog problema zapoceo sam ali nikako da zavrsim sa problemom.

Po default moze da mi prikaze 20 artikala po stranicu.

Dole sam napravio select option sa ponudjenim brojevima.
Pokusavao sam raznim nacinima kako da kada kliknem broj 10 da mi u pagination prikaze 10 artikla, ili 30 itd.
Ali nisam uspeo.

Da li mozete da mi pomognete oko ovog problema.

Hvala vam.


Code:
<?php
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$sort = (string) (!isset($_GET["sort"]) ? "" : $_GET["sort"]);

$limit = 20;
//$limit = (int) (!isset($_GET["limit"]) ? 1 : $_GET["limit"]);

$startpoint = ($page * $limit) - $limit;
$article_name = @$_GET['article'];

if ($article_name == '' || $article_name == ' ') {
    // generate error message
    echo '<div class="alert alert-danger">
            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
            <b>ERROR: Sorry, Please fill in all required fields!</b></br></br>
            1. Try more general words.</br>2. Try different words with similar meaning</br></div>';
    exit();

        $total = mysql_query("SELECT name_article FROM article WHERE keywords LIKE '%$article_name%' AND active=1");
        
        //to make pagination
        $sqlOrder = "";
        if (isset($_GET['article']) AND $_GET['article'] != '') {
                if($sort == "asc") {
                  $sqlOrder = "ORDER BY article.price ASC";    
                } else if($sort == "desc") {
                  $sqlOrder = "ORDER BY article.price DESC";  
                }
                
            $statement = "WHERE keywords LIKE '%$article_name%' AND active = 1";
            $url = '?article=' . $article_name . '&sort=' . $sort . '&';
            $search_query = $article_name;
            echo "<div class=\"searchText\" style='width:200px;'>Search</div>
            <div style='float:left;'>There are is matching result for <b>$search_query</b>.</div>
            <div style='float:right;'>
                <a href='search.php?article=$article_name&sort=asc'>Od jeftinije</a> / 
                <a href='search.php?article=$article_name&sort=desc'>Od najskuplje</a>
                
                    <select name='limit'>
                        <option value='10'>10</option>
                        <option value='20'>20</option>
                        <option value='30'>30</option>
                        <option value='ovo ne znam sta da stavim'>All</option>
                    </select>
                
            </div><hr />";
        } else {
            $statement = "WHERE active = 1";
            $url = '?';
        }
        
        //show records
        $query = mysql_query("SELECT article.name_article, article.info_article, article.price, article.datum, pic_article.pic_mala FROM article 
                LEFT JOIN pic_article ON pic_article.pic_article_id=article.pic_article_id {$statement} {$sqlOrder} LIMIT {$startpoint} , {$limit}");
        

$foundnum = mysql_num_rows($total); //TOTAL NUMBER OF RESULTS

include 'includes/overall/footer.php'; ?>
[ ColdKeyboard @ 08.02.2014. 20:17 ] @
Sta ti konkretno pravi problem? Ovde ne vidim deo koda koji ispisuje ili uzima podatke koje selektujes sa tim sql statement-om.

Takodje, ako radis nesto iole ozbiljnije (nije za tvoje licne potrebe na localhost-u) obavezno uradi sanitaciju post/get formi. Googlaj za Php sanitize form input, ili sl.

Zasto koristis {$imeVarijable} unutar "" ? Mislim da ti mozda to pravi problem, umesto u mysql_query("... {$varijabla} ..."); probaj staviti samo mysql_query("... $varijabla ...");
Pogledaj kakva je razlika izmedju "" i '', i kakva je razlika izmedju print i echo.

Isto ti ne znas da li taj sql query uopste prolazi, umesto mysql_query(); stavi mysql_query('select nesto from negdje limit 0, 20') or die('Greska u Select Nesto statementu: '. mysql_error());
Tako ces da vidis gresku ukoliko nisi dobro formatirao mysql statement i sl.

Takodje moj savjet ti je da potrazis i proucis neke "standardne" ili preporucene prakse prilikom pisanja php koda i OBAVEZNO radi neki debugging prilikom faze izrade, da li to bio
obicni print_r, var_dump, echo, print ili nesto deseto ali obavezno moras da znas sta ti se desava u kodu tj. koji dio ti tacno pravi problem i kada, u suprotnom ti je kao da pucas na slepo...tesko da ces nesto pogoditi.
[ pijavica. @ 12.02.2014. 17:55 ] @
ColdKeyboard hvala na pomoc.
Citat:
Isto ti ne znas da li taj sql query uopste prolazi, umesto mysql_query(); stavi mysql_query('select nesto from negdje limit 0, 20') or die('Greska u Select Nesto statementu: '. mysql_error());
Tako ces da vidis gresku ukoliko nisi dobro formatirao mysql statement i sl.

Kod je dobar i statement funkcionise dobro.

Citat:
Zasto koristis {$imeVarijable} unutar "" ? Mislim da ti mozda to pravi problem, umesto u mysql_query("... {$varijabla} ..."); probaj staviti samo mysql_query("... $varijabla ...");
Pogledaj kakva je razlika izmedju "" i '', i kakva je razlika izmedju print i echo.

Nema nikakve razlike

Umesto ovog koda
Code:
<select name='limit'>
     <option value='10'>10</option>
     <option value='20'>20</option>
     <option value='30'>30</option>
     <option value='ovo ne znam sta da stavim'>All</option>
</select>

napravio sam ovaj i on dobro funkcionise
Code:

<a href='search.php?article=$article_name&sort=$sort&limit=10'>10</a>
<a href='search.php?article=$article_name&sort=$sort&limit=20'>20</a>
<a href='search.php?article=$article_name&sort=$sort&limit=30'>30</a>
<a href='search.php?article=$article_name&sort=$sort&limit=40'>40</a>


ali sa select option nece.

10 / 20 / 30 /40
Kao tekst funkcionise dobro celi kod

Samo da pitam kada hocu da mi prikaze sve artikle koje trazim
Code:
<a href='search.php?article=$article_name&sort=$sort&limit=/*ovo ne znam sta da stavim*/'>ALL</a>


samo sam hteo da uradim sa select option ali ... hmmm
i kada napravim
Code:

<form action='search.php' method='get'>
<select name='limit'> ......

kada sam izabrao broj 20 i kliknuo ok
problem prikazuje : http://localhost:8080/search.php?limit=20
naravno zato sto nema ime artikla koju trazim
ista stvar se desava i kada stavim ovako
Code:
<form action='search.php?article=$article_name&' method='get'>



Hvala na pomoc
[ pijavica. @ 03.03.2014. 17:51 ] @
Resio sam u svakom slucaju hvala