Paginare
Moderatori: Zamolxe, Moderatori
Paginare
Salut!
Am nevoie de un cod de paginare in php, cam tot ce am gasit pe internet nu era bun sau daca vroiam sa modific unele chesti dadea erori de nu imi incapea pe monitor X_X
Sper sa ma ajuti vai. E o pagina pentru anunturi. Doresc sa fie 15 anunturi pe o pagina. Adica 1-15 pagina 1, 16-30 pagina 2, si tot asa. Multumesc Mult!
Am nevoie de un cod de paginare in php, cam tot ce am gasit pe internet nu era bun sau daca vroiam sa modific unele chesti dadea erori de nu imi incapea pe monitor X_X
Sper sa ma ajuti vai. E o pagina pentru anunturi. Doresc sa fie 15 anunturi pe o pagina. Adica 1-15 pagina 1, 16-30 pagina 2, si tot asa. Multumesc Mult!
- Double_Web
- Average Member
- Mesaje: 183
- Membru din: Joi Apr 12, 2012 2:33 pm
- Localitate: Bucuresti
- Contact:
Re: Paginare
Uite aici un tutorial destul de interesant cu paginare: http://www.tutorialeonline.net/ro/artic ... e-paginare
In general, daca ai vreo problema, da-i un search pe http://www.tutorialeonline.net
In general, daca ai vreo problema, da-i un search pe http://www.tutorialeonline.net
Re: Paginare
Am gasit singur un script functional, multumesc oricum!
Ultima oară modificat Vin Iul 05, 2013 1:55 pm de către Ruben, modificat 1 dată în total.
Re: Paginare
Alta problema:
Am reusit sa mil modific pe plac fara erori dar acuma nu functioneaza paginarea si alternarea cu culori ca toate <tr> sa fie colorate in 2 culori(background) si daca in baza de date am 4 intrari pe browser o sa am 16, imi face intrarile inmultit la cate intrari sunt:
Si cred ca unele elemente treubie sterse, doar ocupa lini deoarece eu mi lam modificat pe plac si acuma unele chesti cred ca nu mai este nevoie de ele.
Am reusit sa mil modific pe plac fara erori dar acuma nu functioneaza paginarea si alternarea cu culori ca toate <tr> sa fie colorate in 2 culori(background) si daca in baza de date am 4 intrari pe browser o sa am 16, imi face intrarile inmultit la cate intrari sunt:
Cod: Selectaţi tot
<?php
require_once 'dbc.php';
$rezultate_maxime_in_linie = 9;
$rezultate_maxime_in_jos = 10;
$totale = mysql_result(mysql_query('SELECT COUNT(*) as Num FROM `administrare_contracte`'),0);
if($totale == 0) echo 'Nu exista intrari ...';
elseif(!isset($_GET['pagina'])) $pagina = 1;
else $pagina = $_GET['pagina'];
$cerereSQL = mysql_query('SELECT * FROM `administrare_contracte` ORDER by `id` ASC LIMIT '.(($pagina * ($rezultate_maxime_in_jos*$rezultate_maxime_in_linie)) - ($rezultate_maxime_in_jos*$rezultate_maxime_in_linie)).', '.($rezultate_maxime_in_jos*$rezultate_maxime_in_linie).' ');
$pagini_totale = ceil($totale / ($rezultate_maxime_in_jos*$rezultate_maxime_in_linie));
if($pagina > $pagini_totale) echo 'Pagina nu a fost gasita';
elseif($pagini_totale > 0) {
$seteaza = 0;
$numar = ($pagina - 1) * ($rezultate_maxime_in_jos*$rezultate_maxime_in_linie);
$culoare_rand = '#767782';
while($rand = mysql_fetch_array($cerereSQL)) {
$numar++;
if($seteaza == $rezultate_maxime_in_linie) {
$seteaza = 1;
if($culoare_rand == "#767782") $culoare_rand = "#686966";
else $culoare_rand = "#767782";
} else $seteaza++;
$query = "SELECT * FROM administrare_contracte";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
echo "<tr bgcolor=".$culoare_rand." align='center'><td>" . $row['camion'] . "</td><td>" . $row['sofer'] . "</td><td>" . $row['trailer'] . "</td><td>" . $row['marfa'] . "</td><td>" . $row['tonaj'] . " Tone</td><td>" . $row['ruta'] . "</td><td>" . $row['distanta'] . " KM</td><td>" . $row['timp'] . " minute</td><td>" . $row['viteza'] . " KM/H</td><td>" . $row['amenzi'] . " Primite</td><td><b>Administreaza</b></td></tr>\n";
}
}
echo "</table>";
if($pagini_totale == 1) echo '';
else {
echo '<div align="left">';
if($pagina > 1) {
$inapoi = ($pagina - 1);
echo '<a href="'.$_SERVER['PHP_SELF'].'?pagina='.$inapoi.'">«</a> ';
}
for($pagini = 1; $pagini <= $pagini_totale; $pagini++){
if(($pagina) == $pagini) echo '<b>'.$pagini.'</b> ';
else echo '<a href="'.$_SERVER['PHP_SELF'].'?pagina='.$pagini.'">'.$pagini.'</a> ';
}
if($pagina < $pagini_totale) {
$inainte = ($pagina + 1);
echo '<a href=" '.$_SERVER['PHP_SELF'].'?pagina='.$inainte.'">»</a> ';
}
echo '</div>';
}
}
?>
Si cred ca unele elemente treubie sterse, doar ocupa lini deoarece eu mi lam modificat pe plac si acuma unele chesti cred ca nu mai este nevoie de ele.
Re: Paginare
Nici un raspuns?
Re: Paginare
Chiar nimica?
Re: Paginare
Uite un model de paginare
P.S.: vezi ca ai doua while() {}
Cod: Selectaţi tot
// Conectare
/**
* Script paginare
* etape
*/
function query($sql) {
if (!$result = @mysql_query($sql)) {
die($sql . '<br>' . mysql_error());
}
return $result;
}
// Etapa 1 - Numara cate randuri ai in total
$sql = "SELECT COUNT(*) FROM `table`";
$result = query($sql);
$total = mysql_result($result, 0);
// Etapa 2 - calculeaza offset-ul
$page = (int) isset($_GET['page']) ? $_GET['page'] : 1;
$limit = 10;
$totalPages = ceil($total / $limit);
if ($totalPages < 1) { $totalPages = 1; }
if ($page > $totalPages || $page < 1) {
$page = 1;
}
$offset = $limit * ($page - 1);
// Etapa 3 - afiseaza rezultatele
$sql = "SELECT COUNT(*) FROM `table` LIMIT {$offset}, {$limit}";
$result = query($sql);
while ($row = mysql_fetch_assoc($result)) {
// do whatever
}
// Etapa 4 - afiseaza paginarea
for ($pageNum = 1;$pageNum <= $totalPages;$pageNum++) {
echo '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . $pageNum . '">' . $pageNum . '</a>';
}
P.S.: vezi ca ai doua while() {}
Dev @ oblio.eu
Re: Paginare
Multumesc. Ma voi descurca eu de aici... sper...
Si daca nu te superi, ai putea explica detaliat ce face while? Sunt nou in php ca altfel imi rezolvam eu problema cu paginarea.
Si daca nu te superi, ai putea explica detaliat ce face while? Sunt nou in php ca altfel imi rezolvam eu problema cu paginarea.
Re: Paginare
Hmm...
Parerea mea e ca ar trebui sa inveti structurile while, for, foreach etc. inainte sa faci site-uri.
while (conditie) {
// acest cod se repeta pana conditia returneaza "false"
}
http://php.net/manual/en/control-structures.while.php
Parerea mea e ca ar trebui sa inveti structurile while, for, foreach etc. inainte sa faci site-uri.
while (conditie) {
// acest cod se repeta pana conditia returneaza "false"
}
http://php.net/manual/en/control-structures.while.php
Dev @ oblio.eu
Re: Paginare
Notice: Undefined index: sofer in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: trailer in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: marfa in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: tonaj in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: ruta in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: distanta in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: timp in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: viteza in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: amenzi in C:\xampp\htdocs\tester.php on line 36
Nu e de bine Vreau sa le asez in tabel.
Notice: Undefined index: trailer in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: marfa in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: tonaj in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: ruta in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: distanta in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: timp in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: viteza in C:\xampp\htdocs\tester.php on line 36
Notice: Undefined index: amenzi in C:\xampp\htdocs\tester.php on line 36
Nu e de bine Vreau sa le asez in tabel.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: Paginare
Ruben scrie:Multumesc. Ma voi descurca eu de aici... sper...
Si daca nu te superi, ai putea explica detaliat ce face while? Sunt nou in php ca altfel imi rezolvam eu problema cu paginarea.
1) recomand sa citesti tutorialele de la mine, in special Structuri de control in php
2) Eu mi-am facut o clasa de paginare pe care o folosesc la proiectele mele. Nu zic ca e cea mai buna dar pentru mine e ce am avut nevoie.
o descarci de aici
iar mai jos ai exemplu de folosire pentru mysql (se poate folosi sa paginezi si aray sau stringuri sau alte baze de date)
Cod: Selectaţi tot
define ('FAR_ANTIHACK', true); // pentru a nu putea fi accesat fisierul cu clasa de paginare din exterior
define('FAR_PREFIX_SESSION', ''); // prefixul pentru sesiuni, nu ai nevoie de el la exemplu asta dar eu il folosesc prin clasa mea...
$_SESSION[FAR_PREFIX_SESSION . 'language'] = 'ro'; // nici asta nu o folosesti dar e ceruta in clasa
if ( file_exists('pagination.inc.php') )
include_once 'pagination.inc.php';
else
die('Nu a fost gasita clasa de paginare. Eroare la linia '.__LINE__.' in fisierul '.__FILE__;
// initializare paginare
$page = new pagination();
// generam linkul care va apare la butoane
$link = basename($_SERVER['PHP_SELF']) . '?parametrii=valori&'; // nu uita sa pui & la final
// vedem cate randuri sunt in total in baza de date
$total = get_total_rows(); // functia asta o faci tu sau aici faci query sa returneze nr total de randuri existente
// setam cate randuri pe pagina vrem sa se afiseze
$randuri_pe_pagina = 10;
// generam where
$where = $page->set_where($total, $link, $randuri_pe_pagina);
// generare paginare
list($paginare, $start) = $page->set_paginator($where);
// setam start la where
$where['start'] = $start;
// preluam randurile pentru pagina curenta
$info = get_rows($where); // asta o compui tu, in where ai order/order_by/start/limit de care te poti folosi la compunerea selectului
// afisam rezultatele si paginarea
echo '<pre>'.var_export($info,1).'</pre>';
echo '<pre>'.var_export($paginare,1).'</pre>';
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Re: Paginare
Multumesc de raspuns dar mai ingropat de tot. Scriptul are peste 250 de randuri. Mie imi trebuie ceva simplu. Daca poate cineva doar sa imi defineasca erorile ce le am mai sus ar fi perfect si scriptul ar fi perfect functional. Nu imi trebuie nimic mai mult. Am incercat si eo vreo 20 min sa le definesc, am luat din alt script definiri, nu a mers nici cum. Eu nu mai stiu cum sa definesc. Rog pe cineva sa defineasca erorile si sa termin odata problema asta. Multumesc anticipat!
Acesta este codul:
Acesta este codul:
Cod: Selectaţi tot
<?php
require "dbc.php";
function query($sql) {
if (!$result = @mysql_query($sql)) {
die($sql . '<br>' . mysql_error());
}
return $result;
}
$sql = "SELECT COUNT(*) FROM `administrare_contracte`";
$result = query($sql);
$total = mysql_result($result, 0);
// Etapa 2 - calculeaza offset-ul
$page = (int) isset($_GET['page']) ? $_GET['page'] : 1;
$limit = 10;
$totalPages = ceil($total / $limit);
if ($totalPages < 1) { $totalPages = 1; }
if ($page > $totalPages || $page < 1) {
$page = 1;
}
$offset = $limit * ($page - 1);
// Etapa 3 - afiseaza rezultatele
$sql = "SELECT COUNT(*) FROM `administrare_contracte` LIMIT {$offset}, {$limit}";
$result = query($sql);
while ($row = mysql_fetch_assoc($result)) {
echo "<tr align='center'><td>" . $row['camion'] . "</td><td>" . $row['sofer'] . "</td><td>" . $row['trailer'] . "</td><td>" . $row['marfa'] . "</td><td>" . $row['tonaj'] . " Tone</td><td>" . $row['ruta'] . "</td><td>" . $row['distanta'] . " KM</td><td>" . $row['timp'] . " minute</td><td>" . $row['viteza'] . " KM/H</td><td>" . $row['amenzi'] . " Primite</td><td><b>Administreaza</b></td></tr>";
}
// Etapa 4 - afiseaza paginarea
for ($pageNum = 1;$pageNum <= $totalPages;$pageNum++) {
echo '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . $pageNum . '">' . $pageNum . '</a>';
}
?>
-
- New Member
- Mesaje: 3
- Membru din: Mar Sep 13, 2016 7:05 pm
Re: Paginare
Salutare,am thema video tube,stie cineva cum se face paginarea la acesta thema?
- Fişiere ataşate
-
- Untitled.jpg (219.48 KiB) Vizualizat de 9296 ori
-
- New Member
- Mesaje: 3
- Membru din: Mar Sep 13, 2016 7:05 pm
Re: Paginare
Chiar nu stie nimeni cum se face o paginare pe thema video tube?
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 21 vizitatori