Visualizzazione risultati 1 fino 2 di 2

Discussione: Select notizie homepage

  1. #1
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Post Select notizie homepage

    Salve a tutti. Ho un problema che non riesco a risolvere, mi spiego. Ho un home page contenente 20 notizie

    Notizia 20
    Notizia 19
    Notizia 18
    Notizia 17
    Notizia 16
    ecc..

    Adesso, siccome vorrei stabilire un numero massimo di notizie per ogni pagina (ovvero 20), vorrei che questa home page diventasse secondaria e vorrei creare una home page primaria. Solo che, quella primaria dovrà contenere la nuova notizia che pubblicherò piu le altre meno recenti, arrivando fino a 20.

    Mi spiego meglio. Se le notizie sono 21, la home numero uno dovrà contenere 20 notizie (quella recente appena pubblicato piu quelle meno recenti, ovvero 19) e la home numero due, solo una notizia (ovvero quella meno recente). Cosi si avranno 20 nella prima e una nella seconda.

    Esempio: 22 notizie. 20 nella home primaria, le 2 meno recenti nella home secondaria.
    Esempio: 23 notizie. 20 nella home primaria, le 3 meno recenti nella home secondaria.

    E cosi via ad ogni notizia che pubblico. Non so se mi sono spiegato. Come potrei fare? La mia idea era di limitare il numero di notizie nella home primaria con

    Codice PHP:
    SELECT * FROM ... LIMIT 20
    Ma come faccio a prendere sempre l'ultima notizia pubblicata e ad inserire l'ultima nella seconda home? Grazie in anticipo.

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Ciò che vuoi ottenere si chiama paginazione, ovvero la suddivisione di un insieme di entità in sottoinsiemi discreti, limitati e distinti.

    Per la suddivisione in pagine hai bisogno di passare allo script l'informazione sulla pagina corrente, ad esempio tramite $_GET.

    Per l'ordinamento dei risultati da recuperare hai bisogno, se non l'hai già fatto, di arricchire la tabella con l'informazione sulla data di pubblicazione. Un campo di tipo TIMESTAMP andrà bene. Potrai quindi usare ORDER BY nome_campo DESC nell'interrogazione.

    Per la paginazione vera e propria dovrai prima calcolare l'offset come (pagina - 1) * dimensione_pagina, e quindi usare l'informazione per effettuare l'interrogazione: LIMIT 20 OFFSET offset_calcolato.

    Riassumendo, il codice viene pressapoco così (assumendo che tu passi l'informazione della pagina tramite $_GET['pagina'] e il campo di tipo timestamp si chiami timestamp_creazione):
    Codice PHP:
    $dimensione = 20;
    $pagina = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
    $offset = ($pagina - 1) * $dimensione;

    $query = "SELECT * FROM ... ORDER BY timestamp_creazione DESC LIMIT $dimensione OFFSET $offset";
    Ultima modifica di mzanella : 14-07-2017 alle ore 18.35.09

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •