Afisarea datelor din scriptul de paginare

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
claUdiu
Mesaje:313

Afisarea datelor din scriptul de paginare

Cod: Selectaţi tot

<?php
// Script de paginare, de la https://marplo.net

// Datele pt. conectare la baza de date
// MODIFICATI
$host = "localhost";	// server MySQL
$utilizator = "imagehostingg"; 
$parola = "imagehostingg";
$numebd = "imagehostingg";	// nume baza de date

// Conectarea la baza de date
$conn = mysql_connect($host, $utilizator, $parola);
if (!$conn) {
  echo 'Conectare nereusita la MySQL'; 
  exit;
}

// Selectarea bazei de date
if (!mysql_select_db($numebd, $conn)) {
  echo 'Baza de date nu a putut fi selectata deoarece : '. mysql_error();
  exit;
}

// Setarea pentru format UTF-8
$sql = "SET NAMES 'utf8'";
mysql_query($sql, $conn);

// Afla cate linii sunt in tabel (MODIFICATI 'nume_tb') din baza de date  
$sql = "SELECT COUNT(*) FROM `fisiere";  
$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 = 15;  
// 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['pagina']) && is_numeric($_GET['pagina'])) {  
  // seteaza variabila ca int 
  $currentpage = (int) $_GET['pagina'];  
} 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 'nume_tb') din baza de date  
$sql = "SELECT * FROM `fisiere` 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
  $fisier[] = $list['fisier'];
  $cod_fisier[] = $list['cod_fisier'];
  $data[] = $list['data'];
  $ora[] = $list['ora'];
  $descarcari[] = $list['descarcari'];
}
mysql_close();	// Incheie conexiunea cu mysql

/*** Afisarea datelor obtinute ***/
// Parcurge variabilele array setate in bucla WHILE
for($i=0; $i<count($id); $i++) {
  // Aici puteti adauga cod HTML pentru aspectul grafic al afisarii
  echo '<table border=0 class=margins cellspacing=1 width=75%>
<tr>
<th bgcolor="#454545"><font color="white" size="2"><b>Numele fisierului</b></th></font>
<th bgcolor="#454545"><font color="white" size="2"><b>Descarcari</b></th></font>
<th bgcolor="#454545"><font color="white" size="2"><b>Data uploadului</b></th></font>
</tr>';

echo '<tr>
<td class="margins" width="50%" align="left"><font class="lista_servere" color="blue" size="2"><b><a href="download.php?k='.$cod_fisier[$i].'">'.$fisier[$i].'</a></td></font>
<td class="margins" width="50%" align="left"><font class="lista_servere" color="blue" size="2"><b>'.$rand['descarcari'].'</td>
<td class="margins" width="50%" align="left"><font class="lista_servere" color="blue" size="2"><b>$data[$i].' - '.$ora[$i]</td>
</font></tr>';

echo '</table>';

}

/*** 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']}?pagina=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']}?pagina=$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 "Pagina $currentpage din $totalpages <a href='{$_SERVER['PHP_SELF']}?pagina=$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']}?pagina=$nextpage'>></a> ";  
  //  arata >> pt. ultima pagina
  echo " &nbsp; <a href='{$_SERVER['PHP_SELF']}?pagina=$totalpages'>>></a><br><br>";  
}
?>

Sus este codul umpic modificat, dar numi arata nici un rezultat. Care ar fi problema?pls help:(
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Incearca sa pui in loc de:
for($i=0; $i<count($id); $i++)

Urmatorul cod:
for($i=0; $i<count($fisier); $i++)

claUdiu Mesaje:313
Ms merge, dar mai am o problema.

Cod: Selectaţi tot

<?php
// Script de paginare, de la https://marplo.net

// Datele pt. conectare la baza de date
// MODIFICATI
$host = "localhost";	// server MySQL
$utilizator = "imagehostingg"; 
$parola = "imagehostingg";
$numebd = "imagehostingg";	// nume baza de date

// Conectarea la baza de date
$conn = mysql_connect($host, $utilizator, $parola);
if (!$conn) {
  echo 'Conectare nereusita la MySQL'; 
  exit;
}

// Selectarea bazei de date
if (!mysql_select_db($numebd, $conn)) {
  echo 'Baza de date nu a putut fi selectata deoarece : '. mysql_error();
  exit;
}

// Setarea pentru format UTF-8
$sql = "SET NAMES 'utf8'";
mysql_query($sql, $conn);

// Afla cate linii sunt in tabel (MODIFICATI 'nume_tb') din baza de date  
$sql = "SELECT COUNT(*) FROM `fisiere";  
$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 = 15;  
// 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['pagina']) && is_numeric($_GET['pagina'])) {  
  // seteaza variabila ca int 
  $currentpage = (int) $_GET['pagina'];  
} 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 'nume_tb') din baza de date  
$sql = "SELECT * FROM `fisiere` LIMIT $offset, $rowsperpage";  
$result = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);  
 
// parcurgerea matricei cu datele obtinute 

  // - MODIFICATI numele coloanelor tabelului ('id' si 'texte')
  // Stocheaza datele returnate de MySQL in variabile array pt. fiecare coloana
  $fisier[] = $list['fisier'];
  $cod_fisier[] = $list['cod_fisier'];
  $data[] = $list['data'];
  $ora[] = $list['ora'];
  $descarcari[] = $list['descarcari'];

mysql_close();	// Incheie conexiunea cu mysql

/*** Afisarea datelor obtinute ***/
// Parcurge variabilele array setate in bucla WHILE
for($i=0; $i<count($fisier); $i++) {
  // Aici puteti adauga cod HTML pentru aspectul grafic al afisarii
  echo '<table border=0 class=margins cellspacing=1 width=75%>
<tr>
<th bgcolor="#454545"><font color="white" size="2"><b>Numele fisierului</b></th></font>
<th bgcolor="#454545"><font color="white" size="2"><b>Descarcari</b></th></font>
<th bgcolor="#454545"><font color="white" size="2"><b>Data uploadului</b></th></font>
</tr>';

while ($list = mysql_fetch_assoc($result)) {  
echo '<tr>
<td class="margins" width="50%" align="left"><font class="lista_servere" color="blue" size="2"><b><a href="download.php?k='.$fisier[$i].'">'.$fisier[$i].'</a></td></font>
<td class="margins" width="50%" align="left"><font class="lista_servere" color="blue" size="2"><b>'.$descarcari[$i].'</td>
<td class="margins" width="50%" align="left"><font class="lista_servere" color="blue" size="2"><b>'.$data[$i].'</td>
</font></tr>';
   }
echo '</table>';

}

/*** 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']}?pagina=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']}?pagina=$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 "Pagina $currentpage din $totalpages <a href='{$_SERVER['PHP_SELF']}?pagina=$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']}?pagina=$nextpage'>></a> ";  
  //  arata >> pt. ultima pagina
  echo " &nbsp; <a href='{$_SERVER['PHP_SELF']}?pagina=$totalpages'>>></a><br><br>";  
}
?>
Am mutat while ($list = mysql_fetch_assoc($result)) { umpic mai jos pentru a nu se repeta titlurile din tabel la fiecare fisier si acuma numi arata deloc rezultatele:-??ce prb ar fi?:(
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Problema este ca ai mutat WHILE, si nu mai se genereaza ce era inainte in while si care asa trebuiau sa fie, deoarece urmatoarele depind de ce e in while.
Daca vrei sa faci acel script altfel, e treaba ta, nu ma bag unde modifici si nu stii ce face.