file paging

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

file paging

Δημοσίευση από Stadem » 02 Νοέμ 2007 13:24

Τρόπος δημιουργίας file paging με την php.


Χαιρετώ την php παρέα.
Θα ήθελα να ρωτήσω πώς είναι ο καλύτερος τόπος για να φτιαχτεί ένα file paging.
Διαβάζοντας από την php ένα folder πώς μπορούμε να σελιδοποιήσουμε τα δεδομένα.


Ευχαριστώ προκαταβολικά.
:)
web-IQ Interactive Quality
Εικόνα

dimisthes
Δημοσιεύσεις: 17
Εγγραφή: 20 Νοέμ 2006 13:36

file paging

Δημοσίευση από dimisthes » 02 Νοέμ 2007 14:59


Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

file paging

Δημοσίευση από Stadem » 02 Νοέμ 2007 19:12

Σε ευχαριστώ φίλε μου για την απάντηση αλλά αναφέρομαι σε file paging τα οποία τα διαβάζει αυτόματα απο Folder . Δεν υπάρχει καμία σύνδεση με βάση δεδομένων. Αυτο που σκέφτομαι σαν λύση είναι ότι κατα το "διάβασμα" των αρχείων να κάνει ένα count μέσα στο loop και να εμφανίζει τα files απο το 1 μέχρι το 30, αλλα ψάχνω να βρω αν υπάρχει κανένας καλύτερος τρόπος. Κάθε πρόταση δεκτή. :)
web-IQ Interactive Quality
Εικόνα

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

file paging

Δημοσίευση από dik_ » 02 Νοέμ 2007 20:04

Κώδικας: Επιλογή όλων

$FILES_PP = 10; // isos me define auto kalitera

$from = isset($_GET['from']) ? $_GET['from'] : 0; // logika apo parameter to pairneis auto
$from += 2; //gia na min metraei ta "." kai ".."

$d = scandir("/blah/");

for &#40;$i = $from; $i < $from + $FILES_PP; $i++&#41;
	echo $d&#91;$i&#93;."<br/>";

$c = count&#40;$d&#41; - 2;

$total = $c/$FILES_PP + &#40;$c%$FILES_PP != 0 ? 1&#58; 0&#41;;

echo "total pages&#58; ".$total;

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

file paging

Δημοσίευση από Stadem » 02 Νοέμ 2007 20:07

Σε ευχαριστώ για την γρήγορη απάντηση σου, θα το διαβάσω και ότι απορίες έχω θα σου πω. :D
web-IQ Interactive Quality
Εικόνα

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

file paging

Δημοσίευση από Stadem » 03 Νοέμ 2007 21:22

Χαιρετώ και πάλι,
Θέλησα βελτιώνοντας το να μπορώ να επιλέγω κάποια αρχεία τα οποία δεν θέλω να φαίνονται, (όπως το Thumbs.db το κάνω με το $file[$i] != "Thumbs.db" ) αλλά κατά το paging υπάρχει μία σελίδα στο τέλος η οποία είναι κενή.

Το total page το πέρασα από ceil($total) για να μου αναφέρει την σελίδα με μορφή ακέραιου.

Θέλω σε να μου εξηγήσεις στο παραπάνω το ($c%$FILES_PP != 0 ? 1: 0);

Κάθε βελτίωση-σύμπτυξη του κώδικα ευπρόσδεκτη.

Κώδικας: Επιλογή όλων


$file = scandir&#40;"thub/"&#41;;
$c = count&#40;$file&#41;;
$FILES_PP = 5; // isos me define auto kalitera

//$from = '0'; //for ch
    $from = isset&#40;$_GET&#91;'from'&#93;&#41; ? $_GET&#91;'from'&#93; &#58; 0; // logika apo parameter to pairneis auto
$from += 2;
for &#40;$i = $from; $i <= $from + $FILES_PP; $i++&#41;
   if &#40;$file&#91;$i&#93; != "Thumbs.db" && $file&#91;$i&#93; != "folder" && $file&#91;$i&#93; != ".." && $file&#91;$i&#93; != "." &#41; &#123;
$k= $k+1;
echo $file&#91;$i&#93;."<br>"; 
	&#125;
	 echo "<br><br><br>";		
	
//$total = $c/$FILES_PP + &#40;$c%$FILES_PP != 0 ? 1&#58; 0&#41;;
$total = $c/$FILES_PP;
echo "Files/p&#58; ".$FILES_PP."<br>"; 
echo "total files&#58; ".$c."<br>"; 
echo "total pages&#58; ".ceil&#40;$total&#41;."<br><br><br>"; 

	for &#40;$k = 1; $k <= $total; $k++&#41;
	 if &#40;$k <= 1&#41;&#123; 
 $x = $FILES_PP + 1;
 	echo "<a href=\"paging2.php?from=0\">0</a> ";
     echo "<a href=\"paging2.php?from=$x\">".$k."</a>  ";
	&#125;else&#123;
	 $x = &#40;$FILES_PP +1&#41; * $k;
	  echo "<a href=\"paging2.php?from=$x\">".$k."</a>  ";
	&#125;
	



web-IQ Interactive Quality
Εικόνα

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

file paging

Δημοσίευση από dik_ » 04 Νοέμ 2007 02:18

Λοιπόν το εξής τα κάνει όλα. Απλώς βάζεις στην $exclude ό,τι θες να μη μετράει και ορίζεις το $FILES_PP και το dir.

Κώδικας: Επιλογή όλων

<?

$exclude = array&#40; // lowercase ola
	'.',
	'..',
	'thumbs.db',
	'folder',
&#41;;

$file = scandir&#40;"thub/"&#41;;

$FILES_PP = 5; // isos me define auto kalitera

$p = isset&#40;$_GET&#91;'p'&#93;&#41; ? &#40;$_GET&#91;'p'&#93;==0 ? 1 &#58; $_GET&#91;'p'&#93;&#41; &#58; 1;

$done = 0;
$woulddo = 0;
$i = 0;
$tot = count&#40;$file&#41;;

while &#40;$i < $tot&#41;&#123;
	if &#40;!in_array&#40;strtolower&#40;$file&#91;$i&#93;&#41;, $exclude&#41;&#41;&#123;
		if &#40;$done < $FILES_PP && $woulddo >= &#40;$FILES_PP * &#40;$p-1&#41;&#41;&#41;&#123;
			echo $file&#91;$i&#93;."<br>";
			$done++;
		&#125;
		$woulddo++;
	&#125;
	$i++;	
&#125;

$totp = ceil&#40;$woulddo/$FILES_PP&#41;;
echo "<br/><br/>";
echo &#40;$p > 1 ? "<a href=\"".$_SERVER&#91;'SCRIPT_NAME'&#93;."?p=".&#40;$p-1&#41;."\">" &#58; ""&#41;."previous".&#40;$p > 1 ? "</a>" &#58; ""&#41;;
echo "&nbsp;|&nbsp;";
echo "Total pages&#58; ".$totp."&nbsp;|&nbsp;"."Total files&#58; ".$woulddo;
echo "&nbsp;|&nbsp;";
echo &#40;$p < $totp ? "<a href=\"".$_SERVER&#91;'SCRIPT_NAME'&#93;."?p=".&#40;$p+1&#41;."\">" &#58; ""&#41;."next".&#40;$p < $totp ? "</a>" &#58; ""&#41;;
?>
Το "($c%$FILES_PP != 0 ? 1: 0)" προσθέτει 1 αν χρειάζεται. Σε συνδυασμό με το "$c/$FILES_PP +" κάνει ό,τι και η ceil, οπότε κράτησα τη ceil αυτήν τη φορά (δεν μου ήρθε την προηγούμενη :D )

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

file paging

Δημοσίευση από Stadem » 04 Νοέμ 2007 14:00

Σε ευχαριστώ πολύ! Είναι πολύ καλό! Πρέπει να του ρίξω διάβασμα όμως. Σου χρωστάω :D
web-IQ Interactive Quality
Εικόνα

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης