- Home
- Categorie
- Coding e Sistemistica
- PHP
- Un archivio con php
-
Un archivio con php
Vorrei creare un archivio che contenga alcuni articoli posizionati dal più recente al più vecchio... vorrei che questo archivio, cambi pagina superati un tot di articoli... per fare questo, con l'html, mano a mano che gli articoli aumentano, la gestione sarebbe quasi impossibile...
Ho visto invecie moltissime pagine web create con il php che fanno automaticamente questa operazione (tipo questa -> http://it.t45ol.com/giochi-gratis/giochi-shockwave-2.php?start=0&nbl=4&order=gameID&max=82 che dopo 16 articoli cambia pagina)
Non ho idea di come si possa creare una cosa del genere... mi potete aiutare? in giro non ho trovato nessun manuale che tratta di questo
-
possibile che nessuno sappia come fare???
Vi faccio vedere un altro esempio...
http://www.flashgames.it/sezione.php?pageNum_sezione=4&categoria=azione
Qui ogni 12 articoli si crea un'altra pagina (penso che sia un sistema automatico...)
Anche la struttura della pagina -> "4&categoria=azione"... a cosa serve? qualcuno me lo potrebbe spiegare? vi prego!!!!
-
ciao. questo è un piccolo esempio
$obj=new Connessione($server,$database,$utente,$passwd); $obj->Apri(); $sql="SELECT * FROM news"; $ris =$obj->Query($sql); while( $row = mysql_fetch_array($ris)) { $count=mysql_num_rows($ris); } $fp=5; // msg x pagina $pag=$count/$fp; // numero di pagina che viene creato if (isset($_GET['giggione'])) $giggione=$_GET['giggione']; else $giggione = 0; $sql="select * from news order by idnews desc limit ".$giggione*$fp.",".$fp.""; $risultato =$obj->Query($sql); while( $col = mysql_fetch_array($risultato)) { // stampa delle news } $obj->Chiudi();
-
sezione.php?pageNum_sezione=4&categoria=azione
ora ho capito come ha fatto flashgame... con il metodo get!!!
Comunque con quello che dici tu mi dovrei collegare ad un database sql vero?
-
@Leo06 said:
sezione.php?pageNum_sezione=4&categoria=azione
ora ho capito come ha fatto flashgame... con il metodo get!!!
Comunque con quello che dici tu mi dovrei collegare ad un database sql vero?
si hai bisogno di un db. scusa se sono stato poco chiaro.....
-
Cercavo un modo per farlo senza db...
Sono riuscito a risolvere con degli array... il problema adesso è quello di scambiare l'ordine degli articoli inseriti nell'array (in questo modo avrò a disposizione gli articoli dall'ultimo inserito al primo...)
una guida in php dice che occorre fare in questo modo...
array_reverse(nome_array,[booleano])
io allora scrivo -> array_reverse($vettore,[true]);
MI DA ERRORE!!!
Qualcuno mi aiuti!!!
-
ma hai messo [true] con le parentesi?
di solito l'argomento tra parentesi è opzionale
prova a toglierlo
-
Si mi ero sbagliato... avevo messo le parentesi
Comunque non mi funzionava lostesso
Allora ho visto meglio e bisognava assegnare ad un altro vettore l'array iniziale con gli indici al contrario in questo modo...
$vettoredestinatario = array_reverse($vettore)
-
Ciao metto un modo artenativo a quello di spaceconte, è quello che utilizzo io...magari può tornare utile
<?php //impaginatore include "pager_multiselect.php"; include "config.php"; mysql_select_db("DBNAME") or die(mysql_error()); $n_result = mysql_query( "SELECT * FROM sezione Order By id DESC" ); $num_rows = mysql_num_rows($n_result); //mi servirà; per far capire all'impaginatore dove ci troviamo $pag = $_GET[page]; // //stabilisco limite dei risultati mostrati ed offset dei risultati $limite = "12"; $off = "12"; // //qui richiamo la funzine dell'impaginatore getPagerData($num_rows, $limite, $pag, $off); $offset_ = $offset; $pag = $page; $result = mysql_query( "SELECT * FROM sezione Order By id DESC LIMIT $offset_, $limite" ); while ($row = mysql_fetch_array($result)){ //printo ciò che voglio far vedere echo "<h1>$row[titolo]</h1>"; //puoi mettere quello che vuoi } ?> <?php //nome della pagina dei risultati $pagina_w = "paginarisultati.php"; // //numero di pagine linkate da mostrare per visionarle direttamente, esempio di visualizzazione: pagina precedente, pagine: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] pagina successiva $pagine_mostr = 10; // //pagine da mostrare, le moltiplico se si scorre di blocco in blocco, //quindi da 10 in 10. Si potrebbe sviluppare con un ciclo for, a voi l'onere! Per il momento l'ho fatto a mano, prevedendo di non avere più di 50 pagine di risultati! if ($pag > $pagine_mostr*5) $pagine_mostr = $numPages; if ($pag > $pagine_mostr*4) $pagine_mostr = $pagine_mostr*5; if ($pag > $pagine_mostr*3) $pagine_mostr = $pagine_mostr*4; if ($pag > $pagine_mostr*2) $pagine_mostr = $pagine_mostr*3; if ($pag > $pagine_mostr*1) $pagine_mostr = $pagine_mostr*2; if ($numPages<$pagine_mostr) $pagine_mostr = $numPages; // //ecco di seguito i links per navigare i risultati! if ($pag == 1) { $impa .= "Pagine dei risultati: ($numPages pagine totali per $num_rows articoli) "; } else { $impa .= "Pagine dei risultati: ($numPages pagine totali per $num_rows articoli) "; $impa .= "<a href=\"$pagina_w?page=".($pag-1)."\">Pagina precedente</a>"; } for ($i = 1; $i <= $pagine_mostr; $i++) { $impa .= " "; if ($i == $page) $impa .= "** - $i - **"; else { $impa .= "<a href=\"$pagina_w?page=".$i."\">[$i]</a>"; } } if ($pag == $numPages){ ; } else { $impa .= " "; $impa .= "<a href=\"$pagina_w?page=".($pagine_mostr+1)."\">[---]</a> <a class='linkstatico' href=\"$pagina_w?page=".($pag+1)."\">Prossima pagina</a>"; } if ($num_rows < $limite) { $impa = "Una pagina di risultati per $num_rows articoli "; } if ($num_rows == 0) { $impa = "Nessun risultato "; } print $impa; // ?>
codice su pager_multiselect.php
<? //impaginatore function getPagerData($numHits, $limit, $page, $off) { global $offset,$limit,$page,$numPages,$ret,$off; $numHits = (int) $numHits; $limit = max((int) $limit, $off); $page = (int) $page; $numPages = ceil ($numHits / $limit); $page = max($page, 1); $page = min($page, $numPages); $offset = ($page- 1) * $limit; $off = $offset; $ret = new stdClass; $ret->offset = $offset; $ret->limit = $limit; $ret->numPages = $numPages; $ret->page = $page; return $ret; } ?>
ciao
Dax