| 
 
 
	
	
 
 
   
        
        
             
        
        
        | 
	to Stránkování
         | 
             27.4.2006 15:57
			      
                             J3C
			      
         | 
	
         
            Stránkování pěkné, ale hodilo by se připomenout, že se musí doplnit druhá část podmínky a to pro případ, že v DB bude méně než ROWS záznamů, což se hodí zejména u volitelného kroku. Jinak to zobrazí lautr nic, pokud se nemýlím :) 
Linuxu zdar  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: to Stránkování
         | 
             10.7.2006 01:20
			      
                             Adelka
			      
         | 
	
         
            ano suhlasim, staci nieco ako: 
 
else{ //ak je zaznamov menej ako ROWS 
     echo "Brigády: 1-".$celkom; 
     echo " z celkom $celkom   "; 
     echo "Začiatok | Predchádzajúce | Nasledujúce | Koniec <BR>"; 
     $sql=mysql_query("SELECT ......"); 
} 
 
Ale este je tam jedna chyba. Totiz ak si date napr. zobrazit zaznamy co ja viem po 5 na stranku, a budete ich mat v db 20, tak ak kliknete na koniec, bude chciet zobrazit 21 zaznam, ktory nie je. preto sa to da spravit takto: 
 
if($celkom%ROWS==0)$konecny_limit=($celkom-ROWS+1); 
       	else $konecny_limit=($celkom-$celkom%ROWS+1); 
 
a potom do url treba dat len od=$konecny_limit  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: to Stránkování
         | 
             10.7.2006 08:02
			      
                             Aleš Hakl
			      
         | 
	
         
            Pokud to, co tu tvrdite, je pravda, tak u me "databaze" MySQL klesla jeste vice, nez jsem si kdy myslel, ze je mozne. 
 
Pokud chci vysledek dotazu vracejiciho 5 radku, pricemz chci tech radku maximalne 10, je logicke, ze dostanu prave tech 5, ne? Stejne tak je logicke, ze pokud budu chtit zobrazit zaznamy od 6 dale a maximalne deset, tak nedostanu nic (a nikoli chybu, jak se snazite implikovat).  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: to Stránkování
         | 
             10.12.2006 23:23
			      
                             Jee
			      
         | 
	
         
            Jen kdyby někdo chtěl kratší zápis... 
 
<pre> 
$konecnylimit=$celkem%ROWS==0?$celkem-ROWS+1:$celkem-$celkem%ROWS+1; 
</pre>  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: to Stránkování
         | 
             28.7.2007 16:56
			      
                             Jindřich Kovář
			      
         | 
	
         
            Když jsem si to vyzkoušel, tak jsem zjistil, že MySQL čísluje záznamy v klauzuli LIMIT od 0, nikoliv od 1. Takže je potřeba v SELECT mít LIMIT od $od-1.  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: to Stránkování
         | 
             16.8.2006 08:40
			      
                             petr3141
			      
         | 
	
         
            když tam nenapíšu tu podmínku vůbec tak to taky funguje  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	method=POST
         | 
             30.11.2007 11:22
			      
                             Marek Paľo
			      
         | 
	
         
            Veďel by mi niekto poradiť ako to urobyť cez POST? Nechcem tam mať tlačítka ale odkaz ako je to aj v článku. Teraz to mám takto: 
 
else  echo "<form action=\"{$_SERVER[PHP_SELF]}\" method=POST>\n"; 
echo "<input type=hidden name=celkem value=$celkem>\n"; 
echo "<input type=hidden name=od value=".($od+ROWS)."\>\n"; 
echo "<input type=hidden name=akce value=search>\n"; 
echo "<input type=submit value=\"Následujúce\">\n"; 
echo "</form>\n"; 
 
funguje mi to, ale cez odkazy by to bolo krajšie  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	ORDER BY
         | 
             28.5.2008 20:32
			      
                             Dan Pelíšek
			      
         | 
	
         
            Dobrý den, udělal sem si tabulku a chtěl sem si tam udělat i možnost řazení podle různých sloupců. Řazení sloupců s VARCHAR bylo bez problému, ale při pokusu ředit podle TINYINT mi to napsalo chybu: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...seznam_knih.php on line 46. 
Lze řadit podle TINYINT hodnot? Jestli ano, kde můžu mít chybu, je to nasáno následovně: $radky=mysql_query("SELECT nazev, autor, precteno FROM knihy ORDER BY precteno"." LIMIT ".($od-1).", ".$zobrazit_radku); 
    | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Česká diakritika
         | 
             28.5.2008 23:25
			      
                             Dan Pelíšek
			      
         | 
	
         
            Ještě jsem se chtěl zeptat jak se dá vyhledávát v databázy slova s českou diakritikou, například písmeno ě. Zkoušel jsem: 
SELECT * FROM knihy WHERE nazev LIKE '%ě%' ...  
a SELECT * FROM knihy WHERE nazev LIKE CONVERT( _utf8 '%ě%'USING latin1 )COLLATE latin1_general_ci 
ale ani jedno nefungovalo (i když jsem změnil kódování z latin1_general_ci na utf8_czech_ci) 
 
Nevíte jak se to jdá udělat?  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	@while ($zaznam=MySQL_Fetch_Array($vysledek)) echo $zaznam["obec"]." ".$zaznam["psc"]."<BR>\n";
         | 
             17.2.2010 15:44
			      
                             Oldřich Válek
			      
         | 
	
         
            Chci se zeptat, k čemu je tam ten zavináč? Chápu to tak, aby se celý kód opakoval jenomže když ho tam mam, tak to hází chybu:   " Parse error: syntax error, unexpected T_WHILE in /home/free/ic.cz/t/test-2/root/www/str_1_b.php on line 50 "  když to dám pryč, tak mě nefunguje jen to jak už bylo popsáno výše že se to snaží na konci vypsat př 11 z 10 záznamů... jenom mě ty jejich návrhy nějak nefungovali...  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	stránkování
         | 
             9.3.2011 10:15
			      
                             Tomáš Hofer
			      
         | 
	
         
            Dobrý den. 
 
Chtěl jsem vyzkoušet stránkování, jak je popsáno v tomto díle a použil jsem kopii skriptu. Při zobrazení první stránky výsledků je vše v pořádku, ale po kliknutí na "následující" se mi objeví hláška MySQL, že tam mám chybu v syntaxi:  
 
<code> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND Obrazy.Model= ORDER BY Obrazy.Model, Obrazy.naz_mod, Mach, Uhel LIMIT 2, 2' at line 10</code> 
 
Vám to všem funguje? Nesetkali jste se někdo s něčím podobným? Můj skript je téměř totožný s uvedeným výše s tím rozdílem, že si příkaz SELECT skládám dynamicky... 
 
<code> 
 if (!isset($_GET["celkem"])) //pokud nevíme, kolik bude záznamů tak to zjistíme... 
 { 
 $vysledek3 = mysql_query($sql,$spojeni) or die("Nelze vykonat definiční dotaz: " . mysql_error()); 
// $zaznam = mysql_fetch_array($vysledek3); 
 $celkem = mysql_num_rows($vysledek3); 
 echo "<h2>Vyhledávání v databázi obrazů proudových polí podle Vámi zadaných kritérií přineslo tyto výsledky:</h2><p>(Celkem: ".$celkem.")</p>"; 
 } 
 else 
 { 
 echo "<h2>Vyhledávání v databázi obrazů proudových polí podle Vámi zadaných kritérií přineslo tyto výsledky:</h2><p>(Celkem: ".$celkem.")</p>"; 
 } 
 if ($celkem>ROWS) 
 { 
   if (!isset($_GET["od"])) {$od=1;} else {$od=$_GET["od"];} 
   $sql.=" LIMIT ".($od-1).", ".ROWS; 
   $vysledek3=mysql_query($sql,$spojeni) or die("Nelze vykonat definiční dotaz: " . mysql_error()); 
     echo "Záznamy: ".$od."-"; 
   echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem; 
   echo " z $celkem   "; 
     //začátek - vytvoř odkaz pouze pokud nejsme na začátku 
      if ($od==1) echo "Začátek | "; 
     else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=1\">Začátek</a> | "; 
     //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS 
      if ($od<ROWS) echo "Předchozí | "; 
     else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Předchozí</a> | "; 
   //další - vytvoř, pouze pokud nejsme v posledních ROWS 
      if ($od+ROWS>$celkem) echo "Následující | "; 
     else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Následující</a> | "; 
   //poslední - to je posledních (zbytek po dělení ROWS) záznamů 
      if ($od>$celkem-ROWS) echo "Konec <BR>"; 
     else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($celkem-$celkem%ROWS+1)."\">Konec</a><BR>"; 
 } 
</code>  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: stránkování
         | 
             10.3.2011 06:29
			      
                             Tomáš Hofer
			      
         | 
	
         
            Tak už jsem na to přišel. Při znovunačtení stránky se ztratí hodnoty zadané z formulářů uložené v $_POST. Tomu se dá zabránit použitím superglobal: 
 
session_start(); 
if (empty($_POST)) $_POST = $_SESSION['page_post_data']; 
else $_SESSION['page_post_data'] = $_POST;  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
         
	
   | 
  
 
 
   
  | 
 
 | 
	KOMENTARZE
 
         | 
  
 
   | 
     
    
   
    Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
   
  
   | 
  
 
 | 
	
	 
	Szukanie oprogramowania
					  
		
 
				 |