Salut! Am incercat scriptul postat de tine pe site, merge in teste, insa cand incerc sa-l introduc in cadrul unei pagini php, unde am eu nevoie sa-mi fie afisate datele ( eg. stirile noi adaugate ), imi afiseaza doar primele x stiri( cat am setat) si nu-mi mai apar legaturile catre urmatoarele pagini!
$currentpage functioneaza daca e in cadrul unei singure pagini, independenta de continutul pe care il am eu in site? sau acest script de afisare/paginare merge integrat si alta sectiune a unei pagini?
Iar daca doresc sa-mi apara doar partial stirea, cu optiune de "read more", si onclick="redirect catre pagina cu stirea integral" cum as putea face?
Mersi pentru vizualizare si bineinteles si pentru raspuns!
Paginare - inspirat din script de paginare - MarPlo.net
-
- Mesaje:16
Paginare - inspirat din script de paginare - marplo.net
Cand ajungi in varful muntelui, continua sa urci!
MarPlo
Mesaje:4343
Legaturile catre alte pagini apar in functie de $totalpages, daca e mai mare decat 1. Iar $totalpages e raportul dintre numarul de randuri din tabel si numarul cate trebuie afisate in pagina.
$currentpage e numarul paginii curente, preluat din URL de la valoarea lui "currentpage=" , daca nu exista $_GET['currentpage'], are valoarea 1. Deci nu conteaza ce continut e in pagina, ci sa existe in adresa URL "currentpage=un_nr".
Pentru partea cu "read more ...", trebuie creata o functie care a pastreze un anumit numar de caractere din text si dupa ele sa adauge un link catre pagina cu tot textul.
Ca exemplu (dar care se adapteaza de fiecare la ce are):
$currentpage e numarul paginii curente, preluat din URL de la valoarea lui "currentpage=" , daca nu exista $_GET['currentpage'], are valoarea 1. Deci nu conteaza ce continut e in pagina, ci sa existe in adresa URL "currentpage=un_nr".
Pentru partea cu "read more ...", trebuie creata o functie care a pastreze un anumit numar de caractere din text si dupa ele sa adauge un link catre pagina cu tot textul.
Ca exemplu (dar care se adapteaza de fiecare la ce are):
Cod: Selectaţi tot
$text = 'Un text oarecare din care vor fi afisate primele 50 de caracte.';
$txt = substr($text, 0, 50). '... <u>Read more</u>';
echo $txt;
legolas
Mesaje:16
Multumesc pentru explicatii! Am inteles mai bine acum, si cum functioneaza GET-ul din URL,
Am reusti pana la urma sa fac afisarea, merge ff bine, acum voi incerca si ceea ce mi-ai zis cu substr().
ms inca o data!
Am reusti pana la urma sa fac afisarea, merge ff bine, acum voi incerca si ceea ce mi-ai zis cu substr().
ms inca o data!
Cand ajungi in varful muntelui, continua sa urci!
legolas
Mesaje:16
Am intampinat o alta problema:
" Function ereg_replace() is deprecated"
Ma poate ajuta cineva sa-mi explice ce se intampla?
Am facut paginarea afisand stirea cu substr, iar in dreptul fiecarei stiri am pus un:
am incercat prin $strDashed = ereg_replace(" ","-",$str), sa inlocuiesc spatiile albe din titlu, cu o linie, deoarece din cate stiu, in URL nu se introduc spatii libere intre cuvinte.
Cand compar cu titlurile din db, fac un undashed! ereg_replace("-"," ",$strDashed)?
Care e problema? S-au cum as putea rezolva in alt mod?
" Function ereg_replace() is deprecated"
Ma poate ajuta cineva sa-mi explice ce se intampla?
Am facut paginarea afisand stirea cu substr, iar in dreptul fiecarei stiri am pus un:
Cod: Selectaţi tot
.substr($continut[$i], 0, 150).'[...] <a href="oneNews.php?title=$titluDashed" id="readMore">articol complet » </a>
Cand compar cu titlurile din db, fac un undashed! ereg_replace("-"," ",$strDashed)?
Care e problema? S-au cum as putea rezolva in alt mod?
Cand ajungi in varful muntelui, continua sa urci!
MarPlo
Mesaje:4343
Daca primesti notificare ca o functie e "deprecata" (deprecated), inseamna ca a fost anulata in noile versiuni PHP si inlocuita cu alta mai avansata,care poate face acelasi lucru.
In cazul lui ereg_replace(), este inlocuit cu preg_replace().
Vezi in documentatia PHP exemple cum se foloseste preg_replace().
- Daca ceea ce vrei e sa inlocuiesti niste caractere cu altul, cel mai indicat e str_replace() [poate prelua si un Array de caractere sa inlocuiasca], dar nu e pe subiectul acestui Topic.
In cazul lui ereg_replace(), este inlocuit cu preg_replace().
Vezi in documentatia PHP exemple cum se foloseste preg_replace().
- Daca ceea ce vrei e sa inlocuiesti niste caractere cu altul, cel mai indicat e str_replace() [poate prelua si un Array de caractere sa inlocuiasca], dar nu e pe subiectul acestui Topic.
trif
Mesaje:500
salut am si eu o problema cu scriptul de paginare, am pus scriptul pe un site si merge foarte bine dar daca pun o variabila merge dar imi da eroare si nu imi arata valoarea acelei variabile. adica am adaugat acestea si merge bine dar eu mai vreau sa pun variabila si cand o pun imi da eroarea asta dar in rest merge foarte bine. link-ul care il am este
nu stiu ce sa ii fac, te rog ajuta-ma, multumesc anticipat. cu stima trif
Cod: Selectaţi tot
$id[] = $list['id'];
$titlu[] = $list['titlu'];
$url[] = $list['url'];
$descriere[] = $list['descriere'];
Cod: Selectaţi tot
$nrac[] = $list['nrac'];
Cod: Selectaţi tot
Warning: Cannot use a scalar value as an array in...
Cod: Selectaţi tot
echo '<a class="link" href="class.CountAccess.php?url='.urlencode($url[$i]).'">'. $titlu[$i].'<span><b>Descriere:</b><br> '. $descriere[$i].'<br> Nr. accesari: '. $nrac[$i].'</span></a><br>';
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Scuze, din codul pe care l-ai pus nu-mi dau seama /nu vad care sa fie cauza erorii (care ar trebui adaugata complet) si nici rezolvarea.
trif
Mesaje:500
salut, am codul acesta de paginare de pe site, si merge bine pana cand ii dau cand ii pun aceasta variabila imi da eroarea cand o sterg nu mai imi da aceasta eroare si faza este ca nici nu imi preia din bd rezultatele din coloana nrac. sper ca ai inteles, multumesc anticipat. cu stima trif
Cod: Selectaţi tot
// Afla cate linii sunt in tabel (MODIFICATI 'url') din baza de date
$sql = "SELECT COUNT(*) FROM `url`";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];
// Stabileste numarul de linii din tabel afisate in pagina
$rowsperpage = 5;
// afla numarul total necesar de pagini
$totalpages = ceil($numrows / $rowsperpage); // ceil face rotunjire la int. maxim
// Obtine pagina curenta sau seteaza default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// seteaza variabila ca int
$currentpage = (int) $_GET['currentpage'];
} else {
// pagina care este initial afisata (pagina default)
$currentpage = 1;
}
// daca pagina curenta e mai mare decat total pagini...
if ($currentpage > $totalpages) {
// seteaza pagina curenta la ultima pagina
$currentpage = $totalpages;
}
// daca pagina curenta e mai mica decat prima pagina...
if ($currentpage < 1) {
// seteaza pagina curenta la prima pagina
$currentpage = 1;
}
// lista cu pagini, in functie de pagina curenta
$offset = ($currentpage - 1) * $rowsperpage;
// obtine datele din tabel (MODIFICATI 'url') din baza de date
$sql = "SELECT * FROM `url` ORDER BY $ordonare ASC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
// parcurgerea matricei cu datele obtinute
while ($list = mysql_fetch_assoc($result)) {
// - MODIFICATI numele coloanelor tabelului ('id' si 'texte')
// Stocheaza datele returnate de MySQL in variabile array pt. fiecare coloana
$id[] = $list['id'];
$titlu[] = $list['titlu'];
$url[] = $list['url'];
$descriere[] = $list['descriere'];
$nrac[] = $list['nrac'];
}
mysql_close(); // Incheie conexiunea cu mysql
/*** Afisarea datelor obtinute ***/
// Parcurge variabilele array returnate de bucla WHILE
for($i=0; $i<count($id); $i++) {
// Aici puteti adauga cod HTML pentru aspectul grafic al afisarii
echo '<a class="link" href="class.CountAccess.php?url='.urlencode($url[$i]).'">'. $titlu[$i].'<span><b>Descriere:</b><br> '. $descriere[$i].'<br> Nr. accesari: '. $nrac[$i].'</span></a><br>';
// echo $id[$i]. " - ". $nrac[$i]. "<br />";
}
/*** Construirea link-urilor pt. paginare ***/
// raza nr. link-uri din jurul celui curent
$range = 3;
// Link-uri inapoi, daca pagina curenta nu e prima
if ($currentpage > 1) {
// arata << pt. link la prima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
// obtine nr. pagina din urma
$prevpage = $currentpage - 1;
// arata < pt. link la o pagina in urma
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
}
// definirea link-urilor din raza paginii curente
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// daca e un nr. de pagina valid ...
if (($x > 0) && ($x <= $totalpages)) {
// daca nr. e pagina curenta ...
if ($x == $currentpage) {
// afiseaza nr. pagina fara a fi link
echo " [<b>$x</b>] ";
// daca nr. nu e pagina curenta ...
} else {
// il face link
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
}
}
}
// Daca pagina curenta nu e ultima, afiseaza link inainte si spre ultima pagina
if ($currentpage != $totalpages) {
// obtine pagina urmatoare
$nextpage = $currentpage + 1;
// arata > pt. urmatoarea pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";
// arata >> pt. ultima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
}
Cod: Selectaţi tot
$nrac[] = $list['nrac'];
Cod: Selectaţi tot
Warning: Cannot use a scalar value as an array in...
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Nu stiu care e cauza si nici ce vrea sa spuna acea eroare care nu indica linia si locatia neregulii. Posibil sa aiba legatura si cu alt script folosite impreuna, dar nu am idee.