[ Príspevkov: 33 ] 1, 2
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
NapísalOffline : 20.02.2009 21:44 | php,mysql strankovani

zdravim...viem ze tem o strankovani je tu plno, ale neviem ho vhodne doplnit do mojej knihy navstev...prikladam skript, chcem dosiahnut to ze po 10 pridaniach prispevkov mi ostatne bude davat do novych(1,2,3) teda odkazov...,uplne najjednoduchsie... prosim poradte neviem si rady

Kód:
<?php
// -- Připojení k databázi a správné nastavení češtiny --

// Připojení k databázi.
$db_spojenie = mysqli_connect
  ('server', 'username', 'pass', 'databaza');
 
// Otestování, zda se připojení podařilo.
if (!$db_spojenie)
{
  echo 'Připojení se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_connect_error();
  exit();
}

// Správné nastavení češtiny.
$objekt_vysledku = mysqli_query($db_spojenie, "SET NAMES 'cp1250'");
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysqli_real_escape_string($db_spojenie,$_POST['meno'])
    ."','"
    .mysqli_real_escape_string($db_spojenie,$_POST['email'])
    ."','"
    .mysqli_real_escape_string($db_spojenie,$_POST['sprava'])
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysqli_query($db_spojenie, $sql_prikaz);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysqli_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysqli_query($db_spojenie,
  'SELECT * FROM kniha_navstev order by datum DESC');
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysqli_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}
echo '<hr />';

// -- Odpojení od databáze --

// Zavření objektu výsledku, protože už ho nebudeme používat.
mysqli_free_result($objekt_vysledku);
 
// Odpojení od databáze.
if ($db_spojenie)
  mysqli_close($db_spojenie);
?>


_________________
V programovani som novacik tak prosim o strpenie
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 9:56 | php,mysql strankovani

cez toto strankovanie som to skusil implementovat ale neslo to

Kód:
//samotné stránkovanie   
$query="SELECT * FROM kniha_navstev ORDER BY id";   
$result=mysql_query($query, $link) or die ("Spojenie s databázou bolo neúspešné");   
$num=mysql_num_rows($result);   
//$ctrl je pomocná premenná   
if ($ctrl1<>1)   
{   
    $strana=1;   
}//endif   
$limit=20;   
$celkovy_pocet=$num;   
$pocet_stran=ceil($celkovy_pocet/$limit);   
$pociatok=($strana*$limit)-$limit;   
 
for ($i=1; $i<=$pocet_stran; $i++)   
{   
    if ($i<>$strana)   
    {   
        echo "<a href=\"index.php?ctrl=1&strana=",$i,"\">",$i,"</a> | ";   
    }   
    else   
    {   
        echo "<font color=\"#FF0000\">",$i,"</font> | ";   
    }//endif   
}//endfor   
 
if ($strana<>$pocet_stran)   
{   
    echo "<a href=\"index.php?ctrl=1&strana=",$strana+1,"\">nasledujúca strana</a>";   
}//endif   
echo "</p>";   
 
//výpis danej množiny prvkov   
$query="SELECT * FROM kniha_navstev ORDER BY id DESC LIMIT $pociatok, $limit";   
$result=mysql_query($query, $link) or die ("Spojenie s databázou bolo neúspešné");   
$num=mysql_num_rows($result);   
while ($row=mysql_fetch_array($result))   
{   
    echo "<p><i>",$row["text"],"</i></p> 
    ";   
}//end while   
mysql_free_result($result);   
?>   
</body>   
</html>   


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2009 10:05 | php,mysql strankovani

vyskusaj si toto http://www.pcforum.sk/post-vp460968.html#460968


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 10:12 | php,mysql strankovani

dobre, a staci ked to zaradim do mojho skriptu na koniec...ci musim vnorovat funkcie priamo donho...nejako takto
Kód:
// Připojení k databázi.
$db_spojenie = mysqli_connect
  ('server', 'user', 'pass', 'tabulka');
 
// Otestování, zda se připojení podařilo.
if (!$db_spojenie)
{
  echo 'Připojení se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_connect_error();
  exit();
}

// Správné nastavení češtiny.
$objekt_vysledku = mysqli_query($db_spojenie, "SET NAMES 'cp1250'");
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysqli_real_escape_string($db_spojenie,$_POST['meno'])
    ."','"
    .mysqli_real_escape_string($db_spojenie,$_POST['email'])
    ."','"
    .mysqli_real_escape_string($db_spojenie,$_POST['sprava'])
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysqli_query($db_spojenie, $sql_prikaz);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysqli_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysqli_query($db_spojenie,
  'SELECT * FROM kniha_navstev order by datum DESC');
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysqli_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}



function pagination($numRows, $rowsPerPage, $maxPages=15)
{
   global $page, $numPages;

   $ret = "";

    if($numPages>0) {
      if(!isset($page)) {
         $page = 1;        //cislo aktivnej stranky (default=1)
      }
      $from = 1;        //cislo stranky, od ktoreho sa zacina strankovanie
      $to = $numPages;    //cislo stranky, kde strankovanie konci
      $padd_a = ceil($maxPages/2);  //pre pozicovanie cisla aktivnej stranky v strankovani
      $padd_b = floor($maxPages/2); //pre pozicovanie cisla aktivnej stranky v strankovani
       
      //vypocitanie prveho a posledneho cisla stranky v strankovani (pre potreby for cyklu)
      if($page >= $maxPages) {
         $from = $page - $maxPages + $padd_a;
         $to = $from + $maxPages - 1;
         
         if($page == $numPages || $page + $padd_b >= $numPages) {
            $to = $numPages;
            $from = $to - $maxPages + 1;
         }
      }
       
      //odkaz na prvu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,1).'">&lt;&lt;</a>' : '&lt;&lt;').'&nbsp;';
       
      //odkaz na predoslu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,$page-1).'">&lt;</a>' : '&lt;').'&nbsp;';
       
      //strankovanie
      for($i = $from; $i <= $to; $i++) {
         if(--$maxPages >= 0) {
            if($page == $i) {
                 $ret .= $i;    //aktivna stranka
            } else {
                 $ret .= '<a href="'.generateURL(PAGEVAR,$i).'">'.$i.'</a>'; //ostatne stranky
            }
            $ret .= DELIMITER;
         } else {
            break;
         }
      }
       
      //odstranenie oddelovaca za poslednou strankou
      $ret = substr($ret,0,-strlen(DELIMITER)).'&nbsp;';
       
      //odkaz na nasledujucu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$page+1).'">&gt;</a>' : '&gt;').'&nbsp;';
       
      //odkaz na poslednu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$numPages).'">&gt;&gt;</a>' : '&gt;&gt;');
       
      return $ret;
   }
   
   return false;
}
?>


_________________
V programovani som novacik tak prosim o strpenie
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 15:33 | php,mysql strankovani

databaza ide aj pridavanie prispevkov a ked pridam 5 prispevkov na stranku dalej sa vytvori odkaz na dalsiu ale prispevky stale pridava na prvu a po kliknuti mi ukaze len Error 404 - Not Found
The requested URL /index.php was not found on this server.
Požadovaná stránka /index.php nebyla nalezena.
stranku si mozete pozriet http://www.infinity.yw.sk/kniha_navstev.php

Kód:
<?   
  $dbServer = " ";   
$dbUser = " ";   
$dbPassword = " ";   
$dbName = " ";   
$link=mysql_pconnect ($dbServer,$dbUser,$dbPassword) or die ("Spojenie neúspešné.");   
$db = mysql_select_db($dbName, $link) or die ("Nepodarilo sa otvoriť databázu.");


$query="SELECT * FROM kniha_navstev ORDER BY datum";   
$result=mysql_query($query, $link) or die ("Spojenie s databázou bolo neúspešné");   
$num=mysql_num_rows($result);   
//$ctrl je pomocná premenná   

if ($ctrl1<>1)   
{   
    $strana=1;   
}//endif   
$limit=5;   
$celkovy_pocet=$num;   
$pocet_stran=ceil($celkovy_pocet/$limit);   
$pociatok=($strana*$limit)-$limit;   
 
for ($i=1; $i<=$pocet_stran; $i++)   
{   
    if ($i<>$strana)   
    {   
        echo "<a href=\"index.php?ctrl=1&strana=",$i,"\">",$i,"</a> | ";   
    }   
    else   
    {   
        echo "<font color=\"#FF0000\">",$i,"</font> | ";   
    }//endif   
}//endfor   
 
if ($strana<>$pocet_stran)   
{   
    echo "<a href=\"index.php?ctrl=1&strana=",$strana+1,"\">nasledujúca strana</a>";   
}//endif   
echo "</p>";   
   // -- Připojení k databázi a správné nastavení češtiny --

// Připojení k databázi.
$db_spojenie = mysqli_connect
  ('server', 'user', 'heslo', 'tabulka');
// Otestování, zda se připojení podařilo.
if (!$db_spojenie)
{
  echo 'Připojení se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_connect_error();
  exit();
}

// Správné nastavení češtiny.
$objekt_vysledku = mysqli_query($db_spojenie, "SET NAMES 'cp1250'");
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysqli_real_escape_string($db_spojenie,$_POST['meno'])
    ."','"
    .mysqli_real_escape_string($db_spojenie,$_POST['email'])
    ."','"
    .mysqli_real_escape_string($db_spojenie,$_POST['sprava'])
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysqli_query($db_spojenie, $sql_prikaz);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysqli_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysqli_query($db_spojenie,
  'SELECT * FROM kniha_navstev order by datum DESC');
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysqli_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}
?>   
</body>   
</html>     


<form name="kniha" action="" method="post">
<b>Meno:</b><br />
<input name="meno" size="40"><br />
<br />
<b>Mail:</b><br />
<input name="email" size="40"><br />
<br />
<b>Správa:</b><br />
<textarea name="sprava" rows="5" cols="30"></textarea><br />
<br />
<input type="submit" value="Odoslať správu">
</form>
</body>   
</html>

</body>
</html>


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2009 19:39 | php,mysql strankovani

namiesto index.php si daj kniha_navstev.php a pozri si poriadne, ako sa funkcia pagination pouziva...

do buducna ta este poprosim nezverejnovat skripty z temy Uzitocne a casto pouzivane skripty na inych forach bez uvedenia zdroja pripadne autora...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 22:01 | php,mysql strankovani

prepac to som si ani neuvedomil...v tomto druhom skripte co sa pokusam vnorit do mojej knihy navstev pagination nie je, doplnil som limit ale
Kód:
$query="SELECT * FROM kniha_navstev order by datum DESC limit $pociatok, $limit";     
$result=mysql_query($query, $link) or die ("Spojenie s databázou bolo neúspešné");     
$num=mysql_num_rows($result);     
//$ctrl je pomocná premenná   skusil som to takto ale pise ze spojenie bolo neuspesne
[/code]


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2009 22:35 | php,mysql strankovani

Vyskusaj tento skript (cisto len vypis prispevkov a strankovanie), dopln si tam potrebne funkcie a pripojenie k db... skusal som to u seba a ide to v pohode...
Kód:
<?php
//funkcia generateURL()
//funkcia pagination()
//pripojenie k db

define("PAGEVAR", "page");    //nazov parametra v GET, kde sa uchovava cislo stranky
define("DELIMITER", " | ");   //oddelovac cisiel stranok
   
$page = 1;        //cislo aktivnej stranky (default=1)

$rowsPerPage = 10;
$maxPages = 9;

$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));
$numRows = $res['pocet'];

$numPages = ceil($numRows/$rowsPerPage);     //pocet stranok v strankovani

if(!empty($_GET[PAGEVAR]) && $_GET[PAGEVAR]>0 && intval($_GET[PAGEVAR])<=$numPages) {
   $page = $_GET[PAGEVAR];
}

$offset = ($page - 1) * $rowsPerPage;

$sql = "SELECT * FROM kniha_navstev ORDER BY datum DESC LIMIT $offset,$rowsPerPage";
$res = mysql_query($sql);
if($res!==false) {
   while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
   }
}

echo pagination($numRows, $rowsPerPage, $maxPages);
?>


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 23:02 | php,mysql strankovani

skontrolujes pls ci som aspon tie funkcie dobre skopcil:
Kód:
<?php
string generateURL(){
   $GET = $_GET;
   $QUERY_STRING = '';
   $SCRIPT_NAME = substr(strrchr($_SERVER["SCRIPT_NAME"],"/"),1);
   
   $num_args = func_num_args();
   if($num_args>0 && $num_args%2==0) {
      $args = func_get_args();
       
      foreach($args as $index => $paramName) {
         $paramName = trim($paramName);
         
         if($index%2==0 && !empty($paramName)) {
            $paramValue = trim($args[$index+1]);
             
            if(array_key_exists($paramName, $GET) && empty($paramValue)) {
               unset($GET[$paramName]);   
            } elseif(!empty($paramValue)) {
               $GET[$paramName] = $paramValue;
            }
         }
      }
   }
   
   foreach($GET as $param => $value) {
      $QUERY_STRING .= $param."=".$value."&amp;";
   }
   
   return $SCRIPT_NAME.((empty($QUERY_STRING)) ? '' : "?".substr($QUERY_STRING,0,-5));
}
 
string pagination($numRows, $rowsPerPage, $maxPages=15)
{
   global $page, $numPages;

   $ret = "";

    if($numPages>0) {
      $page = 1;        //cislo aktivnej stranky (default=1)
      $from = 1;        //cislo stranky, od ktoreho sa zacina strankovanie
      $to = $numPages;    //cislo stranky, kde strankovanie konci
      $padd_a = ceil($maxPages/2);  //pre pozicovanie cisla aktivnej stranky v strankovani
      $padd_b = floor($maxPages/2); //pre pozicovanie cisla aktivnej stranky v strankovani
       
      //vypocitanie prveho a posledneho cisla stranky v strankovani (pre potreby for cyklu)
      if($page >= $maxPages) {
         $from = $page - $maxPages + $padd_a;
         $to = $from + $maxPages - 1;
         
         if($page == $numPages || $page + $padd_b >= $numPages) {
            $to = $numPages;
            $from = $to - $maxPages + 1;
         }
      }
       
      //odkaz na prvu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,1).'">&lt;&lt;</a>' : '&lt;&lt;').'&nbsp;';
       
      //odkaz na predoslu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,$page-1).'">&lt;</a>' : '&lt;').'&nbsp;';
       
      //strankovanie
      for($i = $from; $i <= $to; $i++) {
         if(--$maxPages >= 0) {
            if($page == $i) {
                 $ret .= $i;    //aktivna stranka
            } else {
                 $ret .= '<a href="'.generateURL(PAGEVAR,$i).'">'.$i.'</a>'; //ostatne stranky
            }
            $ret .= DELIMITER;
         } else {
            break;
         }
      }
       
      //odstranenie oddelovaca za poslednou strankou
      $ret = substr($ret,0,-strlen(DELIMITER)).'&nbsp;';
       
      //odkaz na nasledujucu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$page+1).'">&gt;</a>' : '&gt;').'&nbsp;';
       
      //odkaz na poslednu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$numPages).'">&gt;&gt;</a>' : '&gt;&gt;');
       
      return $ret;
   }
   
   return false;
}
$db_spojenie = mysqli_connect
  ('server', 'user', 'pass', 'table');

define("PAGEVAR", "page");    //nazov parametra v GET, kde sa uchovava cislo stranky
define("DELIMITER", " | ");   //oddelovac cisiel stranok
   
$page = 1;        //cislo aktivnej stranky (default=1)

$rowsPerPage = 10;
$maxPages = 9;

$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));
$numRows = $res['pocet'];

$numPages = ceil($numRows/$rowsPerPage);     //pocet stranok v strankovani

if(!empty($_GET[PAGEVAR]) && $_GET[PAGEVAR]>0 && intval($_GET[PAGEVAR])<=$numPages) {
   $page = $_GET[PAGEVAR];
}

$offset = ($page - 1) * $rowsPerPage;

$sql = "SELECT * FROM kniha_navstev ORDER BY datum DESC LIMIT $offset,$rowsPerPage";
$res = mysql_query($sql);
if($res!==false) {
   while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
   }
}

echo pagination($numRows, $rowsPerPage, $maxPages);
?>
[/code]


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2009 23:05 | php,mysql strankovani

preco si dal namiesto "function" string? pripajas sa cez mysqli a potom pouzivas mysql


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 23:14 | php,mysql strankovani

stenley píše:
preco si dal namiesto "function" string? pripajas sa cez mysqli a potom pouzivas mysql
aha no ja som z tych uzitocnych skriptov skusal ze ked mi neslo s function tak som skusil string...mysqli som uz zmenil, Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/free/yw.sk/i/infinity/root/www/kniha_navstev.php on line 102 to je tento riadok

Kód:
$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2009 23:27 | php,mysql strankovani

sql je v pohode, takze nie si pripojeny k db...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 21.02.2009 23:32 | php,mysql strankovani

stenley píše:
sql je v pohode, takze nie si pripojeny k db...
myslim ze hej aj udaje mam dobre zadane(samozrejme neuvadzam)
Kód:
 $db_spojenie = mysql_connect
  ('server', 'user', 'pass', 'table');
if (!$db_spojenie)
{
  echo 'Připojení se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysqli_connect_error();
  exit();
}


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2009 23:37 | php,mysql strankovani

to "table" je akoze co? a vyber aktivnej db mas kde?


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Čestný člen
Čestný člen
php,mysql strankovani

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 22.02.2009 9:06 | php,mysql strankovani

Ach, nemozes miesat jedno z druhym... pouzivaj vsade len mysqli_* alebo len mysql_* funkcie. Nie jedno aj druhe dokopy. Trosku sa lisi aj zapis tychto funkcii, napriklad ak pouzivas mysql, databazu vyberas pomocou mysql_select_db() a nie pomocou 4. parametra ako v pripade mysqli.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 22.02.2009 10:06 | php,mysql strankovani

stenley píše:
to "table" je akoze co? a vyber aktivnej db mas kde?
na miesto table uvadzam nazov databazy len tu som sa pomylil a naznacil ze je to tabulka

Ďuri píše:
Ach, nemozes miesat jedno z druhym... pouzivaj vsade len mysqli_* alebo len mysql_* funkcie. Nie jedno aj druhe dokopy. Trosku sa lisi aj zapis tychto funkcii, napriklad ak pouzivas mysql, databazu vyberas pomocou mysql_select_db() a nie pomocou 4. parametra ako v pripade mysqli.
ano viem uz ma na to stenley upozornoval a ja som to zas zle napisal, kazdopadne dole uvedene varovanie ci chybu mi stale vypisuje

tak takto som sa to pokusil spojit,
funkcia generate url
funkcia pagination
pripojenie k db
a samotny vypis
Kód:
<?php
function generateURL(){
   $GET = $_GET;
   $QUERY_STRING = '';
   $SCRIPT_NAME = substr(strrchr($_SERVER["SCRIPT_NAME"],"/"),1);
   
   $num_args = func_num_args();
   if($num_args>0 && $num_args%2==0) {
      $args = func_get_args();
       
      foreach($args as $index => $paramName) {
         $paramName = trim($paramName);
         
         if($index%2==0 && !empty($paramName)) {
            $paramValue = trim($args[$index+1]);
             
            if(array_key_exists($paramName, $GET) && empty($paramValue)) {
               unset($GET[$paramName]);   
            } elseif(!empty($paramValue)) {
               $GET[$paramName] = $paramValue;
            }
         }
      }
   }
   
   foreach($GET as $param => $value) {
      $QUERY_STRING .= $param."=".$value."&amp;";
   }
   
   return $SCRIPT_NAME.((empty($QUERY_STRING)) ? '' : "?".substr($QUERY_STRING,0,-5));
}
 
function pagination($numRows, $rowsPerPage, $maxPages=15)
{
   global $page, $numPages;

   $ret = "";

    if($numPages>0) {
      $page = 1;        //cislo aktivnej stranky (default=1)
      $from = 1;        //cislo stranky, od ktoreho sa zacina strankovanie
      $to = $numPages;    //cislo stranky, kde strankovanie konci
      $padd_a = ceil($maxPages/2);  //pre pozicovanie cisla aktivnej stranky v strankovani
      $padd_b = floor($maxPages/2); //pre pozicovanie cisla aktivnej stranky v strankovani
       
      //vypocitanie prveho a posledneho cisla stranky v strankovani (pre potreby for cyklu)
      if($page >= $maxPages) {
         $from = $page - $maxPages + $padd_a;
         $to = $from + $maxPages - 1;
         
         if($page == $numPages || $page + $padd_b >= $numPages) {
            $to = $numPages;
            $from = $to - $maxPages + 1;
         }
      }
       
      //odkaz na prvu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,1).'">&lt;&lt;</a>' : '&lt;&lt;').'&nbsp;';
       
      //odkaz na predoslu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,$page-1).'">&lt;</a>' : '&lt;').'&nbsp;';
       
      //strankovanie
      for($i = $from; $i <= $to; $i++) {
         if(--$maxPages >= 0) {
            if($page == $i) {
                 $ret .= $i;    //aktivna stranka
            } else {
                 $ret .= '<a href="'.generateURL(PAGEVAR,$i).'">'.$i.'</a>'; //ostatne stranky
            }
            $ret .= DELIMITER;
         } else {
            break;
         }
      }
       
      //odstranenie oddelovaca za poslednou strankou
      $ret = substr($ret,0,-strlen(DELIMITER)).'&nbsp;';
       
      //odkaz na nasledujucu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$page+1).'">&gt;</a>' : '&gt;').'&nbsp;';
       
      //odkaz na poslednu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$numPages).'">&gt;&gt;</a>' : '&gt;&gt;');
       
      return $ret;
   }
   
   return false;
}
$db_spojenie = mysql_connect
  ('mysql.ic.cz', 'user', 'heslo', 'databaza');
if (!$db_spojenie)
{
  echo 'Připojení se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_connect_error();
  exit();
}

define("PAGEVAR", "page");    //nazov parametra v GET, kde sa uchovava cislo stranky
define("DELIMITER", " | ");   //oddelovac cisiel stranok
   
$page = 1;        //cislo aktivnej stranky (default=1)

$rowsPerPage = 10;
$maxPages = 9;

$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));
$numRows = $res['pocet'];

$numPages = ceil($numRows/$rowsPerPage);     //pocet stranok v strankovani

if(!empty($_GET[PAGEVAR]) && $_GET[PAGEVAR]>0 && intval($_GET[PAGEVAR])<=$numPages) {
   $page = $_GET[PAGEVAR];
}

$offset = ($page - 1) * $rowsPerPage;

$sql = "SELECT * FROM kniha_navstev ORDER BY datum DESC LIMIT $offset,$rowsPerPage";
$res = mysql_query($sql);
if($res!==false) {
   while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
   }
}

echo pagination($numRows, $rowsPerPage, $maxPages);

// Správné nastavení češtiny.
$objekt_vysledku = mysql_query($db_spojenie, "SET NAMES 'cp1250'");
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysql_real_escape_string($db_spojenie,$_POST['meno'])
    ."','"
    .mysql_real_escape_string($db_spojenie,$_POST['email'])
    ."','"
    .mysql_real_escape_string($db_spojenie,$_POST['sprava'])
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysql_query($db_spojenie, $sql_prikaz);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysql_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysql_query($db_spojenie,
  'SELECT * FROM kniha_navstev order by datum DESC');
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysql_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}
?>

<form name="kniha" action="" method="post">
<b>Meno:</b><br />
<input name="meno" size="40"><br />
<br />
<b>Mail:</b><br />
<input name="email" size="40"><br />
<br />
<b>Správa:</b><br />
<textarea name="sprava" rows="5" cols="30"></textarea><br />
<br />
<input type="submit" value="Odoslať správu">
</form>

tu su chybicky
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/free/yw.sk/i/infinity/root/www/kniha_navstev.php on line 109

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/free/yw.sk/i/infinity/root/www/kniha_navstev.php on line 131
PoslĂĄnĂSQL přĂkazu se nepodařilo, sorry
Popis chyby: No database selected



//edituj si prispevky, lebo to bude povazovane za posthunting! (stenley)


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 22.02.2009 11:58 | php,mysql strankovani

uz som ti to pisal aj ja a aj Duri, bud pouzivas syntax mysql_* alebo mysqli_*. Pozri si poriadne, ako sa pracuje s mysql_connect, 4. parameter nie je nazov databazy! ta sa voli cez mysql_select_db()


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 22.02.2009 12:18 | php,mysql strankovani

stenley píše:
uz som ti to pisal aj ja a aj Duri, bud pouzivas syntax mysql_* alebo mysqli_*. Pozri si poriadne, ako sa pracuje s mysql_connect, 4. parameter nie je nazov databazy! ta sa voli cez mysql_select_db()
tak som zmenil to pripojenie k db...len teraz neviem ako mam nahradit premennu $db_spojenie v skripte kedze ju uz nemam zadanu
Kód:
<?php
function generateURL(){
   $GET = $_GET;
   $QUERY_STRING = '';
   $SCRIPT_NAME = substr(strrchr($_SERVER["SCRIPT_NAME"],"/"),1);
   
   $num_args = func_num_args();
   if($num_args>0 && $num_args%2==0) {
      $args = func_get_args();
       
      foreach($args as $index => $paramName) {
         $paramName = trim($paramName);
         
         if($index%2==0 && !empty($paramName)) {
            $paramValue = trim($args[$index+1]);
             
            if(array_key_exists($paramName, $GET) && empty($paramValue)) {
               unset($GET[$paramName]);   
            } elseif(!empty($paramValue)) {
               $GET[$paramName] = $paramValue;
            }
         }
      }
   }
   
   foreach($GET as $param => $value) {
      $QUERY_STRING .= $param."=".$value."&amp;";
   }
   
   return $SCRIPT_NAME.((empty($QUERY_STRING)) ? '' : "?".substr($QUERY_STRING,0,-5));
}
 
function pagination($numRows, $rowsPerPage, $maxPages=15)
{
   global $page, $numPages;

   $ret = "";

    if($numPages>0) {
      $page = 1;        //cislo aktivnej stranky (default=1)
      $from = 1;        //cislo stranky, od ktoreho sa zacina strankovanie
      $to = $numPages;    //cislo stranky, kde strankovanie konci
      $padd_a = ceil($maxPages/2);  //pre pozicovanie cisla aktivnej stranky v strankovani
      $padd_b = floor($maxPages/2); //pre pozicovanie cisla aktivnej stranky v strankovani
       
      //vypocitanie prveho a posledneho cisla stranky v strankovani (pre potreby for cyklu)
      if($page >= $maxPages) {
         $from = $page - $maxPages + $padd_a;
         $to = $from + $maxPages - 1;
         
         if($page == $numPages || $page + $padd_b >= $numPages) {
            $to = $numPages;
            $from = $to - $maxPages + 1;
         }
      }
       
      //odkaz na prvu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,1).'">&lt;&lt;</a>' : '&lt;&lt;').'&nbsp;';
       
      //odkaz na predoslu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,$page-1).'">&lt;</a>' : '&lt;').'&nbsp;';
       
      //strankovanie
      for($i = $from; $i <= $to; $i++) {
         if(--$maxPages >= 0) {
            if($page == $i) {
                 $ret .= $i;    //aktivna stranka
            } else {
                 $ret .= '<a href="'.generateURL(PAGEVAR,$i).'">'.$i.'</a>'; //ostatne stranky
            }
            $ret .= DELIMITER;
         } else {
            break;
         }
      }
       
      //odstranenie oddelovaca za poslednou strankou
      $ret = substr($ret,0,-strlen(DELIMITER)).'&nbsp;';
       
      //odkaz na nasledujucu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$page+1).'">&gt;</a>' : '&gt;').'&nbsp;';
       
      //odkaz na poslednu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$numPages).'">&gt;&gt;</a>' : '&gt;&gt;');
       
      return $ret;
   }
   
   return false;
}

mysql_connect("mysql.ic.cz", "uzivatel", "heslo");
mysql_select_db("databaza");


define("PAGEVAR", "page");    //nazov parametra v GET, kde sa uchovava cislo stranky
define("DELIMITER", " | ");   //oddelovac cisiel stranok
   
$page = 1;        //cislo aktivnej stranky (default=1)

$rowsPerPage = 10;
$maxPages = 9;

$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));
$numRows = $res['pocet'];

$numPages = ceil($numRows/$rowsPerPage);     //pocet stranok v strankovani

if(!empty($_GET[PAGEVAR]) && $_GET[PAGEVAR]>0 && intval($_GET[PAGEVAR])<=$numPages) {
   $page = $_GET[PAGEVAR];
}

$offset = ($page - 1) * $rowsPerPage;

$sql = "SELECT * FROM kniha_navstev ORDER BY datum DESC LIMIT $offset,$rowsPerPage";
$res = mysql_query($sql);
if($res!==false) {
   while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
   }
}

echo pagination($numRows, $rowsPerPage, $maxPages);

// Správné nastavení češtiny.
$objekt_vysledku = mysql_query($db_spojenie, "SET NAMES 'cp1250'");
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysql_real_escape_string($db_spojenie,$_POST['meno'])
    ."','"
    .mysql_real_escape_string($db_spojenie,$_POST['email'])
    ."','"
    .mysql_real_escape_string($db_spojenie,$_POST['sprava'])
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysql_query($db_spojenie, $sql_prikaz);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysql_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysql_query($db_spojenie,
  'SELECT * FROM kniha_navstev order by datum DESC');
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysql_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}
?>

<form name="kniha" action="" method="post">
<b>Meno:</b><br />
<input name="meno" size="40"><br />
<br />
<b>Mail:</b><br />
<input name="email" size="40"><br />
<br />
<b>Správa:</b><br />
<textarea name="sprava" rows="5" cols="30"></textarea><br />
<br />
<input type="submit" value="Odoslať správu">
</form>

http://www.infinity.yw.sk/kniha_navstev.php


_________________
V programovani som novacik tak prosim o strpenie
Offline

Čestný člen
Čestný člen
php,mysql strankovani

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
Bydlisko: Brno
NapísalOffline : 22.02.2009 12:24 | php,mysql strankovani

Pokial by si pouzival mysqli_query, je syntax takato:
Kód:
mysqli_query($objekt_pripojenia, $sql_dotaz)

Ty ale pouzivas mysql_query, tam su parametre naopak:
Kód:
mysql_query($sql_dotaz, $objekt_pripojenia)


Tak si to musis vsade prehodit. A taktiez aj
Kód:
mysql_connect("mysql.ic.cz", "uzivatel", "heslo");

nahrad s
Kód:
$db_spojenie = mysql_connect("mysql.ic.cz", "uzivatel", "heslo");

Lebo vidim, ze objekt $db_spojenie sa snazis pouzivat, ale nikde si ho nedefinoval.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 22.02.2009 12:41 | php,mysql strankovani

dotazy som prehodil, db spojenie doplnil..dik uz aj volaco vykreslilo len stale je problem ze nevypise dany limit na jednu a potom nedoplna http://www.infinity.yw.sk/kniha_navstev.php

//cast skriptu bez pagination a generate url
Kód:
$db_spojenie = mysql_connect("mysql.ic.cz", "user", "heslo");
mysql_select_db("databaza");


define("PAGEVAR", "page");    //nazov parametra v GET, kde sa uchovava cislo stranky
define("DELIMITER", " | ");   //oddelovac cisiel stranok
   
$page = 1;        //cislo aktivnej stranky (default=1)

$rowsPerPage = 10;
$maxPages = 9;

$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));
$numRows = $res['pocet'];

$numPages = ceil($numRows/$rowsPerPage);     //pocet stranok v strankovani

if(!empty($_GET[PAGEVAR]) && $_GET[PAGEVAR]>0 && intval($_GET[PAGEVAR])<=$numPages) {
   $page = $_GET[PAGEVAR];
}

$offset = ($page - 1) * $rowsPerPage;

$sql = "SELECT * FROM kniha_navstev ORDER BY datum DESC LIMIT $offset,$rowsPerPage";
$res = mysql_query($sql);
if($res!==false) {
   while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
   }
}

echo pagination($numRows, $rowsPerPage, $maxPages);

// Správné nastavení češtiny.
$objekt_vysledku = mysql_query("SET NAMES 'cp1250'", $db_spojenie);
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysql_real_escape_string($_POST['meno'],$db_spojenie)
    ."','"
    .mysql_real_escape_string($_POST['email'],$db_spojenie)
    ."','"
    .mysql_real_escape_string($_POST['sprava'],$db_spojenie)
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysql_query( $sql_prikaz,$db_spojenie);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysql_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysql_query('SELECT * FROM kniha_navstev order by datum DESC',$db_spojenie);
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysql_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}
?>


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 22.02.2009 12:53 | php,mysql strankovani

prave som si vsimol, ze pouzivas mesiac staru verziu funkcie pagination(), aktualizuj si ju a malo by to ist...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 22.02.2009 13:34 | php,mysql strankovani

aha no dik prepinanie medzi strankami ide uplne dobre, akurat ked vytvori novy odkaz na dalsiu tak sa tam nepridavaju stale je vsetko v jednej, a to iste vypisuje aj v dalsich http://www.infinity.yw.sk/kniha_navstev.php
Kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<html>
<?php
function generateURL(){
   $GET = $_GET;
   $QUERY_STRING = '';
   $SCRIPT_NAME = substr(strrchr($_SERVER["SCRIPT_NAME"],"/"),1);
   
   $num_args = func_num_args();
   if($num_args>0 && $num_args%2==0) {
      $args = func_get_args();
       
      foreach($args as $index => $paramName) {
         $paramName = trim($paramName);
         
         if($index%2==0 && !empty($paramName)) {
            $paramValue = trim($args[$index+1]);
             
            if(array_key_exists($paramName, $GET) && empty($paramValue)) {
               unset($GET[$paramName]);   
            } elseif(!empty($paramValue)) {
               $GET[$paramName] = $paramValue;
            }
         }
      }
   }
   
   foreach($GET as $param => $value) {
      $QUERY_STRING .= $param."=".$value."&amp;";
   }
   
   return $SCRIPT_NAME.((empty($QUERY_STRING)) ? '' : "?".substr($QUERY_STRING,0,-5));
}
 
function pagination($numRows, $rowsPerPage, $maxPages=15)
{
   global $page, $numPages;

   $ret = "";

    if($numPages>0) {
      if(!isset($page)) {
         $page = 1;        //cislo aktivnej stranky (default=1)
      }
      $from = 1;        //cislo stranky, od ktoreho sa zacina strankovanie
      $to = $numPages;    //cislo stranky, kde strankovanie konci
      $padd_a = ceil($maxPages/2);  //pre pozicovanie cisla aktivnej stranky v strankovani
      $padd_b = floor($maxPages/2); //pre pozicovanie cisla aktivnej stranky v strankovani
       
      //vypocitanie prveho a posledneho cisla stranky v strankovani (pre potreby for cyklu)
      if($page >= $maxPages) {
         $from = $page - $maxPages + $padd_a;
         $to = $from + $maxPages - 1;
         
         if($page == $numPages || $page + $padd_b >= $numPages) {
            $to = $numPages;
            $from = $to - $maxPages + 1;
         }
      }
       
      //odkaz na prvu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,1).'">&lt;&lt;</a>' : '&lt;&lt;').'&nbsp;';
       
      //odkaz na predoslu stranku
      $ret .= (($page > 1) ? '<a href="'.generateURL(PAGEVAR,$page-1).'">&lt;</a>' : '&lt;').'&nbsp;';
       
      //strankovanie
      for($i = $from; $i <= $to; $i++) {
         if(--$maxPages >= 0) {
            if($page == $i) {
                 $ret .= $i;    //aktivna stranka
            } else {
                 $ret .= '<a href="'.generateURL(PAGEVAR,$i).'">'.$i.'</a>'; //ostatne stranky
            }
            $ret .= DELIMITER;
         } else {
            break;
         }
      }
       
      //odstranenie oddelovaca za poslednou strankou
      $ret = substr($ret,0,-strlen(DELIMITER)).'&nbsp;';
       
      //odkaz na nasledujucu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$page+1).'">&gt;</a>' : '&gt;').'&nbsp;';
       
      //odkaz na poslednu stranku
      $ret .= (($page < $numPages) ? '<a href="'.generateURL(PAGEVAR,$numPages).'">&gt;&gt;</a>' : '&gt;&gt;');
       
      return $ret;
   }
   
   return false;
}

$db_spojenie = mysql_connect("mysql.ic.cz", "user", "heslo");
mysql_select_db("databaza");


define("PAGEVAR", "page");    //nazov parametra v GET, kde sa uchovava cislo stranky
define("DELIMITER", " | ");   //oddelovac cisiel stranok
   
$page = 1;        //cislo aktivnej stranky (default=1)

$rowsPerPage = 5;
$maxPages = 9;

$res = mysql_fetch_assoc(mysql_query("SELECT count(*) as pocet FROM kniha_navstev"));
$numRows = $res['pocet'];

$numPages = ceil($numRows/$rowsPerPage);     //pocet stranok v strankovani

if(!empty($_GET[PAGEVAR]) && $_GET[PAGEVAR]>0 && intval($_GET[PAGEVAR])<=$numPages) {
   $page = $_GET[PAGEVAR];
}

$offset = ($page - 1) * $rowsPerPage;

$sql = "SELECT * FROM kniha_navstev ORDER BY datum DESC LIMIT $offset,$rowsPerPage";
$res = mysql_query($sql);
if($res!==false) {
   while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
   }
}

echo pagination($numRows, $rowsPerPage, $maxPages);

// Správné nastavení češtiny.
$objekt_vysledku = mysql_query("SET NAMES 'cp1250'", $db_spojenie);
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}


// -- Vlož nový zápis, pokud byl odeslán formulářem --

// Test, jestli přišla data z formuláře.
if (isset($_POST['sprava']))
{
  // Vytvoření SQL příkazu typu INSERT.
  $sql_prikaz =
    "INSERT INTO kniha_navstev(datum,meno,email,zapis) "
    ."VALUES(NOW(),'"
    .mysql_real_escape_string($_POST['meno'],$db_spojenie)
    ."','"
    .mysql_real_escape_string($_POST['email'],$db_spojenie)
    ."','"
    .mysql_real_escape_string($_POST['sprava'],$db_spojenie)
    ."')"
    ;

  // Zaslání SQL příkazu do databáze.
  $objekt_vysledku = mysql_query( $sql_prikaz,$db_spojenie);
 
  if (!$objekt_vysledku)
  {
    echo 'Poslání SQL příkazu se nepodařilo, sorry';
    echo '<br />';
    echo 'Popis chyby: ', mysql_error($db_spojenie);
    exit();
  }
  echo 'Nový zápis do knihy návštev pridaný.<br />';
}


// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysql_query('SELECT * FROM kniha_navstev order by datum DESC',$db_spojenie);
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysql_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}
?>


<form name="kniha" action="" method="post">
<b>Meno:</b><br />
<input name="meno" size="40"><br />
<br />
<b>Mail:</b><br />
<input name="email" size="40"><br />
<br />
<b>Správa:</b><br />
<textarea name="sprava" rows="5" cols="30"></textarea><br />
<br />
<input type="submit" value="Odoslať správu">
</form>
</html>


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 22.02.2009 13:40 | php,mysql strankovani

namiesto
Kód:
while($riadok = mysql_fetch_row($res)) {
      echo $riadok['zapis']."<br>";
}

si daj
Kód:
while ($riadok = mysql_fetch_assoc($res))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}

a v druhej casti skriptu si vymaz nasledujuce riadky, lebo sa ti bude kniha vypisovat 2krat za sebou:
Kód:
// -- Vypiš všechny zápisy v knize návštěv --

// Zaslání SQL příkazu do databáze.
$objekt_vysledku = mysql_query('SELECT * FROM kniha_navstev order by datum DESC',$db_spojenie);
if (!$objekt_vysledku)
{
  echo 'Poslání SQL příkazu se nepodařilo, sorry';
  echo '<br />';
  echo 'Popis chyby: ', mysql_error($db_spojenie);
  exit();
}

// Zobrazení všech vrácených dat.
while ($riadok = mysql_fetch_array($objekt_vysledku))
{
  echo '<hr />';
  echo 'Dátum a čas: ',$riadok['datum'],'<br />';
  echo 'Napísal: ',$riadok['meno'],' (',$riadok['email'],')<br />';
  echo 'Zápis: ',$riadok['zapis'],'<br />';
  echo '<br />';
}


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 02.04.09
Príspevky: 43
Témy: 8 | 8
Napísal autor témyOffline : 24.02.2009 15:32 | php,mysql strankovani

diky moc chalani, pomohli ste mi...a neviete nahodou kde by bola ta funkcia pagination a generate URL popisana obsirnejsie, chcel by som tomu pochopit


_________________
V programovani som novacik tak prosim o strpenie
Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 24.02.2009 15:52 | php,mysql strankovani

ak sa ti zda popis danych funkcii nedostatocny, napis do temy pre casto pouzivane skripty, comu presne nerozumies, pripadne mi posli ss... inde by si vysvetlenie k tymto funkciam asi nenasiel, kedze nie su "verejne" zname, nakolko ich autorom je moja malickost...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
php,mysql strankovani

Registrovaný: 26.07.09
Prihlásený: 19.08.13
Príspevky: 23
Témy: 7 | 7
NapísalOffline : 24.08.2009 13:08 | php,mysql strankovani

stenley píše:
ak sa ti zda popis danych funkcii nedostatocny, napis do temy pre casto pouzivane skripty, comu presne nerozumies, pripadne mi posli ss... inde by si vysvetlenie k tymto funkciam asi nenasiel, kedze nie su "verejne" zname, nakolko ich autorom je moja malickost...


mam problem, potrebujem predat dalej pole parametrov z formulara:

Kód:
echo "     <select name="cas[]" id="cas" multiple="multiple" size="10" >";

while ($data = mysql_fetch_assoc($select))
    {
        echo "<option value="".$data['Aktualizovane']."">".$data['Aktualizovane']."</option>\n";
    }

echo "      </select>\n";


a

Kód:
echo "     <select name="kategorie[]" id="kategorie" multiple="multiple" size="10" >";

while ($data = mysql_fetch_assoc($select))
    {
        echo "<option value="".$data['Kategoria']."">".$data['Kategoria']."</option>\n";
    }

echo "      </select>\n";


pocitam s tym, ze kod nie je treba moc upravit, ale zatial sa v nom neorientujem.

namiesto pola sa predava len obycajny parameter.


Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 24.08.2009 13:21 | php,mysql strankovani

co to ma spolocne so strankovanim?


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
php,mysql strankovani

Registrovaný: 26.07.09
Prihlásený: 19.08.13
Príspevky: 23
Témy: 7 | 7
NapísalOffline : 24.08.2009 13:34 | php,mysql strankovani

stenley píše:
co to ma spolocne so strankovanim?


prave pri strankovani mam tento problem, obycajne parametre dostanem dalej cez link ale pole parametrov nie

myslim si, ze bude treba upravit tuto cast:

Kód:
   foreach($GET as $param => $value) {
      $QUERY_STRING .= $param."=".$value."&amp;";
   }


Offline

Správca fóra
Správca fóra
php,mysql strankovani

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 24.08.2009 13:55 | php,mysql strankovani

posielas to cez GET alebo POST? aky format url potrebujes spracovat, nieco ako: param[]=value1&param[]=value2 ?

posledny prispevok sa necituje!


Naposledy upravil stenley dňa 24.08.2009 14:00, celkovo upravené 1

_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
php,mysql strankovani

Registrovaný: 26.07.09
Prihlásený: 19.08.13
Príspevky: 23
Témy: 7 | 7
NapísalOffline : 24.08.2009 13:59 | php,mysql strankovani

cez get


 [ Príspevkov: 33 ] 1, 2


php,mysql strankovani



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

1310

02.05.2011 12:08

magicmedia

V tomto fóre nie sú ďalšie neprečítané témy.

php ->mysql ->php Help.zoradit

v PHP, ASP

4

612

20.06.2009 12:44

KViki

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL a PHP

v Databázy

9

868

27.12.2015 0:33

Werus

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

PHP, MySQL koder

v Ponuka práce

1

904

12.07.2010 19:50

Murtagh

V tomto fóre nie sú ďalšie neprečítané témy.

PHP+MySQL, počítadlo

v PHP, ASP

3

818

09.07.2007 18:19

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

mysql + php problem

v PHP, ASP

3

684

21.04.2007 14:08

lukasmakac

V tomto fóre nie sú ďalšie neprečítané témy.

PHP a MySQL

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

30

2138

12.01.2009 13:09

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

PHP a MYSQL

v PHP, ASP

16

865

02.05.2010 10:26

zdeniatqo

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL a PHP

v Databázy

1

702

03.04.2011 8:09

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Problem PHP, MySQL

v PHP, ASP

11

501

17.05.2010 12:07

ricco24

V tomto fóre nie sú ďalšie neprečítané témy.

PHP, MySQL programator

v Ponuka práce

0

792

23.10.2010 11:21

mondzo

V tomto fóre nie sú ďalšie neprečítané témy.

PHP - MySQL - JSON

v PHP, ASP

17

420

05.05.2020 19:05

jumper

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL + PHP + články

v PHP, ASP

7

617

17.10.2014 18:30

Jarvix

V tomto fóre nie sú ďalšie neprečítané témy.

php+apache+mysql

v Ostatné

13

1295

06.07.2009 11:37

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Spocitanie php+mysql

v Databázy

3

697

23.03.2009 13:01

GoodWill

V tomto fóre nie sú ďalšie neprečítané témy.

PHP a MySQL

v PHP, ASP

4

389

23.09.2013 23:50

shaggy



© 2005 - 2024 PCforum, edited by JanoF