Visualizzazione risultati 1 fino 5 di 5

Discussione: Sezione "Articoli"... diverse pagine

  1. #1
    Guest

    Arrow Sezione "Articoli"... diverse pagine

    Mi rivolgo direttamente a voi perchè non so nemmeno le parole chiave per cercare la soluzione al mio problema.

    Sto creando da cima in fondo un sito a mano e sono arrivato alla pagina che dovrebbe contenere diverse tipologie di articoli. Ho cominciato da poco più di una settimana ad usare il db MySQL, mentre a scuola abbiamo fatto 1 mesetto di introduzione di Access (per fortuna la sintassi è la stessa ).

    Comunque.. arrivo al problema: Vorrei fare in modo che quando clicchi su una determinata categoria nel menu laterale, nel contenitore ti mostra i primi 5 articoli del DB (in base alla data gli ultimi inseriti).... e se si vuole leggere quelli scritti in precedenza, l'utente deve cliccare su una serie di numerini che rappresentano le pagine. Insomma, come un banalissimo forum.

    Ecco, non so come organizzarmi per fare questa cosa.

    Osservazioni personali: correggetemi se sbaglio

    1) A mio parere il database necessita una sola tabella con i seguenti campi:
    ID, Nickname, Data, Titolo, Contenuto, Immagine, Categoria.

    2) La query messa in ordine decrescente per il campo DATA, restituira i dati in questo ciclo:

    while($fetch=mysql_fetch_array($query) && i<6){
    i++;
    //stampa <li>Articolo con tutti gli attributi passati dal DB</li>}


    Però deve anche considerare che sulle altre pagine ci vanno gli altri articoli... AIUTO..?

    3) Il campo Immagine conterrà un semplice Link.. così evito di riempire il db di cose inutili.

    4) Il campo Categoria lo imposterò come una ComboBox con i valori predefiniti... Ma per adesso non preoccupiamoci della form di inserimento.

    5) Mi chiedo se c'è bisogno di utilizzare le variabili nel'URL... per adesso ho dinamicizzato il menu delle categorie (es. www.sito.it/articoli/?id=cultura )
    Con l'aggiunta dell'indice (sempre se servirà) dovrebbe diventare tipo:

    www.sito.it/articoli/?id=cultura?p=3

    ?

    Insomma, se qualcuno è così buono da darmi qualche dritta per realizzare questa pagina, vi sarei molto grato. Per adesso ci sono molte idee che mi vagano per la mente ma non ho abbastanza esperienza per realizzarle.

    Vi lascio l'indirizzo del mio sito per controllare la situazione attuale della sezione Articoli:

    http://youmanity.altervista.org/arti...hp?id=Racconti

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Bhe.. la tabella potrebbe andare bene, non ho solo capito perché il campo categoria dovrà avere valore numerico ansi ché il nome della proprio categoria.

    Quando sul tuo meno, formato dinamicamente e contenente il nome delle categorie, ogni categoria potresti collegarla alla stessa pagina, magari passando all'url la categoria interessata:

    Codice:
    categoria.php?n=nome_categoria
    Ad esempio la pagina categoria.php dovrà far riferimento alla categoria valorizzata nella variabile n, passata tramite url, e stampare i primi cinque articoli ( clausola LIMIT dell'sql ) ordinate ( clausola ORDER BY ) per il campo data.

    La query dovrebbe essere cosi:

    Codice:
    SELECT * FROM tabella_articoli WHERE categoria = nome_categoria ORDER BY campo_data LIMIT 5
    Se hai qualche problema puoi c'è una discussione in rilievo qui su questa sessione:

    http://forum.it.altervista.org/php-m...nks-utili.html

    O puoi direttamente dare un'occhiata a questa guida:

    http://php.html.it/guide/leggi/77/gu...mysql-pratica/

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Ciao, grazie mille per la risposta. Immagino di essermi spiegato male. Questa cosa la fa già, infatti lo puoi vedere anche dall'esempio che ho riportato:

    "www.sito.it/articoli/?id=cultura?p=3" dove id = variabile che passa il nome della categoria.

    A me i problemi me li crea il fatto di gestire una ventina di articoli della stessa categoria su diverse pagine, cioè automatizzare in modo che gli articoli scorrano su pagine "p=1" "p=2" "p=N".. quindi in caso gli articoli della sezione "cultura" fosserò "21" allora dovrei ritrovarmi con 5 pagine... di cui l'ultima contiene un solo articolo.

    Ora do un'occhiata ai tuoi link, magari è li che mi attende la risposta! Grazie per la query comunque, la keyword "LIMIT" non la conoscevo!

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Non avevo notato quella pagina, visto che le altre pagine portavano ad un'errore 404.

    Cmq, si, la clausola LIMIT è usata per la paginazione, può avere al massimo due parametro, il primo contiene l'indice dell'elemento da qui dovrà iniziare la visualizzazione e l'ultimo l'indice da dove dovrà smettere ( es: LIMIT 0,3 visualizza gli elementi dall'indice 0 all'indice 3 ) ovviamente questa clausola può avere anche un solo elemento ( es: LIMIT 5, visualizza l'elemento dal primo indice, 0, all'indice 5).

    Nella paginazione queste parametri devono essere dinamici, ad ogni pagina cambiano, a seconda di determinate condizione, ma questo lo potrai vedere nella guida che ti ho linkato.

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Ti ringrazio tantissimo.. Oggi ho avuto un pò di ispirazione e mi sono messo al lavoro riuscendoci!

    posto il codice nel caso qualcuno avesse lo stesso problema:

    //"p" è una variabile che sta nell'Url e indica la pagina... ho provato a testare questo metodo sulla pagina dei commenti

    $p = $_GET['p'];
    $until = 5; // 5 commenti per pagina
    $from = $p*$until - 5; //alla p=1 parte da 0. se p=2 allora 2*5-5 = 5. In questo modo il calcolo sarà dinamico per ogni pagina

    $query=mysql_query("Select * from comments where comment_on='$pagename' ORDER BY data_post DESC LIMIT $from, $until");
    Per adesso ho fatto questo. Ora procederò con la creazione di un pulsante "Avanti" che incrementerà l'indice della variabile "p".

Tags for this Thread

Regole di scrittura

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