Pagina 1 din 1

Paginare - inspirat din script de paginare - marplo.net

Scris: Sâm Aug 13, 2011
de legolas
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 - localhost

Scris: Sâm Aug 13, 2011
de MarPlo
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):

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;

Paginare - inspirat din script de paginare - MarPlo.net

Scris: Sâm Aug 13, 2011
de legolas
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! :)

Paginare - inspirat din script de paginare - MarPlo.net

Scris: Dum Aug 14, 2011
de legolas
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:

Cod: Selectaţi tot

.substr($continut[$i], 0, 150).'[...] <a href="oneNews.php?title=$titluDashed" id="readMore">articol complet » </a>
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?

Paginare - inspirat din script de paginare - MarPlo.net

Scris: Dum Aug 14, 2011
de MarPlo
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.

Paginare - inspirat din script de paginare - MarPlo.net

Scris: Joi Aug 25, 2011
de trif
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

Cod: Selectaţi tot

  $id[] = $list['id'];
  $titlu[] = $list['titlu'];
  $url[] = $list['url'];
  $descriere[] = $list['descriere'];
si merge bine dar eu mai vreau sa pun variabila

Cod: Selectaţi tot

  $nrac[] = $list['nrac'];
si cand o pun imi da eroarea asta

Cod: Selectaţi tot

Warning: Cannot use a scalar value as an array in... 
dar in rest merge foarte bine. link-ul care il am este

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>';
nu stiu ce sa ii fac, te rog ajuta-ma, multumesc anticipat. cu stima trif

Paginare - inspirat din script de paginare - MarPlo.net

Scris: Joi Aug 25, 2011
de MarPlo
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.

Paginare - inspirat din script de paginare - localhost

Scris: Vin Aug 26, 2011
de trif
salut, am codul acesta de paginare

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> &nbsp; ";  
  // 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> &nbsp;";  
} 
// 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 "&nbsp; <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";  
  //  arata >> pt. ultima pagina
  echo " &nbsp; <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";  
}
de pe site, si merge bine pana cand ii dau

Cod: Selectaţi tot

$nrac[] = $list['nrac'];
cand ii pun aceasta variabila imi da eroarea

Cod: Selectaţi tot

Warning: Cannot use a scalar value as an array in...
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

Paginare - inspirat din script de paginare - MarPlo.net

Scris: Sâm Aug 27, 2011
de MarPlo
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.