Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Come faccio ad gestire la pubblicazione e l'impaginazione dei post con PHP?

    Innanzitutto, ciao a tutti, sono un nuovo utente del forum....
    Fatte le dovute presentazioni vado subito al dunque, poiché ho una domanda a cui non sono riuscito a dare una risposta da porre ai miei nuovi amici di questo meraviglioso forum!

    Ma, prima di porre il mio quesito vi premetto che non mi sto avvicinando all'ambiente della programmazione per la prima volta, infatti in passato ho già avuto modo di "studiare" HTML, CSS, JavaScript, PHP, MySQL, eccetera, eccetera eccetera.

    Dunque, è da un po di tempo che sto pensando di mettere online un blog, sopratutto per avere un canale di comunicazione privilegiato, su cui condividere la vita di tutti i giorni con i vari amici e parenti sparsi per l'italia e non....Quindi la mia intenzione e di sviluppare tutto da me, struttura, design, script, e database.
    In realtà ho anche cominciato a scrivere le prime righe di codice, e fin quando si è trattato di fare una prima bozza non ho avuto alcun problema. Ma ora che il progetto sta prendendo forma mi è sorto appunto, un dubbio, ossia: come faccio tramite il PHP ad impostare l'inserimento dinamico dei nuovi "post" affinché questi siano impilati dal più recente al meno recente (cronologicamente) ed inoltre sempre attraverso il PHP, come faccio ad impostare un limite di "post" da visualizzare in ogni pagina, affinché raggiunto il limite prestabilito questi vengano impaginati in successione, quindi a partire dalla prima pagina, alla pagina 2, poi 3, poi 4, e così via dicendo. Perché in effetti in un blog il numero di "post" che vengono inseriti e consistente, ed io ora come ora non so proprio come fare per risolvere questo problema, quindi spero che ci sia qualcuno qui nel forum che possa aiutarmi in qualche modo.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Benvenuto.
    Per l'ordine dei post: quando salvi i post nel db, memorizza anche il timestamp in cui è avvenuto l'inserimento, in pratica un campo nel db (diciamo che si chiama inserimento) in cui salvi ciò che restituisce la funzione time(), in alternativa, se vuoi che data e orario siano direttamente leggibili, salvali in un campo datetime nel formato "yyyy-mm-dd hh:mm:ss".
    Fatto questo, nello script che recupera i post da mostrare, basta che nella query SELECT indichi "ORDER BY inserimento DESC"

    Per il mostrare un tot di messaggi per pagina, quello che stai cercando è la paginazione.

  3. #3
    Grazie per l'ottima risposta, mi hai aiutato non poco.
    Già che ci siamo posso chiederti anche come faccio a dare una particolare formattazione del testo alla data e all'orario nel caso in cui siano leggibili all'interno dei post....è sufficiente un mix di html e css o la cosa è più complessa?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Spiega cosa intendi per formattazione, per esempio solo dimensioni, colore, allineamento e cose così? In tal caso basta HTML e CSS.
    Se invece vuoi manipolare l'ordine di anno, mese, giorno ecc... allora devi dare uno sguardo alla classe DateTime, oppure alle funzioni date() e mktime().

  5. #5
    ...certo per formattazione intendo font, colore, dimensione e ci aggiungo anche posizionamento dei box model...
    Quindi ad esempio una volta impostata la funzione date() così: echo "<div>" date(j/n/y) "</div>"; posso modificare l'aspetto con i css...per esempio e possibile agire sul padding e sul posizionamento del box oppure ho sbagliato qualcosa nel'espressione?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Magari assegna una classe al div e poi gestisci tutto tramite CSS.
    Ricordati i . per concatenare le stringhe e che date() si aspetta una stringa come parametro, quindi j/n/y va tra apici

    echo '<div class="data">' . date('j/n/y') . '</div>';

  7. #7
    Eccezionale! perdona i miei errori di sintassi.

    A questo punto avrei un ultima domanda, in realtà è curiosità, e tra l'altro non so nemmeno se questa è la sezione giusta del forum per poterne discutere, ma visto che implica l'uso del PHP non indugerò oltre.

    In pratica, ritornando al discorso della paginazione, sapresti spiegarmi o indirizzarmi in qualche articolo del sito dove spiegano come effettuare una paginazione ajax con php, in modo da ottenere una navigazione tra le varie pagine che contengono i "post" senza alcun ricaricamento di sorta.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Invii con AJAX una richiesta GET con indicata la pagina che vuoi allo script che recupera i post dal db, lo script mette insieme i dati recuperati in una stringa formattata in formato JSON in modo che sia semplicemente manipolabile tramite Javascript e alla fine ne fa l'echo.
    In questo modo la chiamata AJAX può recuperare la stringa stampata da PHP (l'array JSON di cui ha fatto l'echo), con JS rimuovi il contenuto del div che contiene tutti i messaggi e lo rimpiazzi coi nuovi dati.
    Per problemi con la parte AJAX chiedi nella sezione Javascript.

  9. #9
    Ti ringrazio infinitamente, non sai quanto mi sei stato d'aiuto! in pratica hai dissipato quasi tutti i miei dubbi....

    Però visto che ho avuto modo di rendermi conto della tua preparazione, anzi per dirla tutta, si capisce chiaramente che sei uno che sa il fatto suo. Per cui mi farebbe davvero piacere se potresti indicarmi qualche libro, oppure, non saprei una fonte bibliografica che tratti sull'interazione tra php e ajax nei casi di paginazione di cui abbiamo discusso sopra, ma anche invio form o quant'altro. Te ne sarei davvero davvero infinitamente grato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.