Paginare - inspirat din script de paginare - Marplo.net

Aici prezentati probleme, intrebari, sau orice subiecte legate de scripturi si tutoriale de pe site.

Paginare - inspirat din script de paginare - Marplo.net

» 13 Aug, 2011

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! :)
Cand ajungi in varful muntelui, continua sa urci!http://students.info.uaic.ro/~ioan.manolie/home.html
legolas
 
Mesaje: 18
Membru din: 13 Aug, 2011
Localitate: Deleni, Iasi


Paginare - inspirat din script de paginare - Marplo.net   » 13 Aug, 2011

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;
MarPlo
Administratorul site-ului
 
Mesaje: 1583
Membru din: 13 Mai, 2008


Paginare - inspirat din script de paginare - Marplo.net   » 13 Aug, 2011

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! :)
Cand ajungi in varful muntelui, continua sa urci!http://students.info.uaic.ro/~ioan.manolie/home.html
legolas
 
Mesaje: 18
Membru din: 13 Aug, 2011
Localitate: Deleni, Iasi


Paginare - inspirat din script de paginare - Marplo.net   » 14 Aug, 2011

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?
Cand ajungi in varful muntelui, continua sa urci!http://students.info.uaic.ro/~ioan.manolie/home.html
legolas
 
Mesaje: 18
Membru din: 13 Aug, 2011
Localitate: Deleni, Iasi


Paginare - inspirat din script de paginare - Marplo.net   » 14 Aug, 2011

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.
MarPlo
Administratorul site-ului
 
Mesaje: 1583
Membru din: 13 Mai, 2008


Paginare - inspirat din script de paginare - Marplo.net   » 25 Aug, 2011

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
http://cantaricrestine.ro ---> cu stima Trif
Avatar utilizator
trif
 
Mesaje: 376
Membru din: 23 Feb, 2010
Localitate: Oradea


Paginare - inspirat din script de paginare - Marplo.net   » 25 Aug, 2011

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.
MarPlo
Administratorul site-ului
 
Mesaje: 1583
Membru din: 13 Mai, 2008


Paginare - inspirat din script de paginare - Marplo.net   » 26 Aug, 2011

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'>&lt;&lt;</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'>&lt;</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'>&gt;</a> "; 
  //  arata >> pt. ultima pagina
  echo " &nbsp; <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>&gt;&gt;</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
http://cantaricrestine.ro ---> cu stima Trif
Avatar utilizator
trif
 
Mesaje: 376
Membru din: 23 Feb, 2010
Localitate: Oradea


Paginare - inspirat din script de paginare - Marplo.net   » 27 Aug, 2011

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.
MarPlo
Administratorul site-ului
 
Mesaje: 1583
Membru din: 13 Mai, 2008


  •  
Daca nu ati gasit raspunsul aici, cautati si pe net:   Paginare - inspirat din script de paginare - Marplo.net .
Pub
 
Mesaje: 1
Membru din: 21 Dec, 2010



Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator

Cursuri / Tutoriale