Autor Zpráva
redZC
Profil *
Zdravím,
mám takový problém s kombinací vyhledáváníé a stránkování v jednom skriptu. Jsem začátečník a nevím v čem je chyba. Používám jen omezený sortiment příkazů a nevím jestli jdou takto zkombinovat. Jde o to, že skript funguje do té doby než po napsání hledaného výrazu kliknu na odkaz na další stránku, funguje to potom tak, jako by hledaný výraz neexistoval, zobrazí se vše. Vypádá to, že stránkování nějak vymaže proměnou $_post. Dík za radu.
RED


if(array_key_exists("myinput", $_POST)) {
  if(get_magic_quotes_gpc())
    $myinput = stripslashes($_POST["myinput"]);
  else
    $myinput = $_POST["myinput"];
     $myinputa = $_POST["myinput"];
}
else {
  $myinput = "";
  }
 

echo '<p><form method="post" action="aaa2.php"';
echo '<input name="myinput" value="', htmlspecialchars($myinput),'"';
echo '<input type="submit" value="Hledej"',"<p>";


if ( $myinput =="")   $_POST["myinput"] = $myinputa;
else
     {   }


    
                
echo "$myinput"; 

$query="select * from auta where nadpis like '%$myinput%' order by datum";   
    $result=mysql_query($query);   
    $num=mysql_num_rows($result);   

  if (!isset($_GET['strana'])){
    $strana = 1;
    }else{
    $strana = ($_GET['strana']);
    }//endif   
    $limit=1;   
    $celkovy_pocet=$num;   
    $pocet_stran=ceil($celkovy_pocet/$limit);   
    $pociatok=($strana*$limit)-$limit;   

   
 //výpis danej množiny prvkov   
    $query="select * from auta where nadpis like '%$myinput%' order by datum DESC LIMIT $pociatok, $limit";   
    $result=mysql_query($query);   
    $num=mysql_num_rows($result);   
    while ($row=mysql_fetch_array($result))   
    {   
               
                echo $row["nadpis"]; 
                echo "  |  "; 
                echo "<i>",$row["datum"],"</i>"; 
                echo "<p><i>",$row["text"],"</i></p>";   
    }//end while   

 if ($strana>1)   
    {        echo "<a href=\"aaa2.php?ctrl=1&strana=",$strana-1,"\">předchozí strana</a> | ";   
             echo "<a href=\"aaa2.php?ctrl=1&strana=",1,"\">začátek</a> | ";  
  }//endif 
 

for ($i=1; $i<=$pocet_stran; $i++)   
    {   
        if ($i<>$strana)   
        {   if ($i<=$strana+1 and $i>=$strana-1) {  
            echo "<a href=\"aaa2.php?ctrl=1&strana=",$i,"\">",$i,"</a> | ";   
        }   
        else   
        {   if ($i==$strana+2 or $i==$strana-2) {  
            echo "  …  ";   
        }   
        else   
        {   }}
         }
         else   
        {   
            echo "<font color=\"#FF0000\">",$i,"</font> | ";   
        }//endif   
    }//endfor   
     
    if ($strana<>$pocet_stran)   
    {   
        echo "<a href=\"aaa2.php?ctrl=1&strana=",$strana+1,"\">následující strana</a> | ";   
         echo "<a href=\"aaa2.php?ctrl=1&strana=",$pocet_stran,"\">konec</a>"; }//endif 
          

  echo "</p>";   
     
   
    mysql_free_result($result);

?>

Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
panther
Profil
redZC:
100 řádků kódu číst nechci a nebudu, snaž se z toho vybrat to podstatné.

Vypádá to, že stránkování nějak vymaže proměnou $_post.
Ano, při odchodu ze stránky se pole $_POST smaže.
redZC
Profil *
V podstatě by mě jen zajímalo jakým způsobem jde po kliknutí na odkaz na další stránku zachovat původní hodnotu proměnné pro vyhledávání, aby se zobrazily jen ty řádky databáze, které splňují původní hodnotu této proměné. Myslel jsem že proměná $_post tuto hodnotu po znovunačtení skriptu uchová, alespoň tak jsem to pochopil.

Pro uložení zadaného řetězce pro vyhledávání jsem použil tuto část skriptu:

echo '<p><form method="post" action="aaa2.php"';
echo '<input name="myinput" value="', htmlspecialchars($myinput),'"';
echo '<input type="submit" value="Hledej"',"<p>";

pro vytvoření odkazu na další stránku pak tuto část (aktuální stránka se správně načte z proměné $get)

echo "<a href=\"aaa2.php?ctrl=1&strana=",$strana+1,"\">následující strana</a> | ";
Keeehi
Profil
redZC:
Máš 2 možnosti
- Parametry pro vyhledávání ber z GET. Do odkazu na další stránku můžeš zase tyto parametry přidat a tak budou dostupné i na další stránce.
- Pro uchování hodnot proměnných mezi stránkami použiješ session. Začít můžeš zde. Příklad je snad dostatečně názorný.
redZC
Profil *
Díky moc

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: