|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1922
|
[php] mostrare le news nella homepage
Salve a tutti, spero possiate darmi una mano. Ho un database e ho implementato l'inserimento, cancellazione delle news tramite php. Ora ho la homepage e dovrei far visualizzare il titolo delle ultime 5 news. Non sono molto pratico e può essere che la domanda sia banale/stupida. Come posso far aggiornare le news in maniera intelligente? I problemi per quanto mi riguarda sono due: uno la home è in html e se volessi aggiornare le news ad ogni refresh dovrei rinominare il file index.html in .php ma dopo funzionerebbe il tutto?
Se volessi aggiornare le news ad ogni inserimento di news come dovrei fare? ah le new scorrono e per fare questo non posso usare flash e ho utilizzato il tag Marqee (so che non è molto compatibile ma non ho trovato altro). Ammettendo di aver superato questo problema poi dovrei fare un'altra cosa... cliccando il titolo della news dovrebbe andare in un'altra pagina e visualizzare il titolo + il testo. come posso fare questo in php? grazie a tutti. se avete ulteriori domande chiedete.
__________________
CCIE Routing&Switching 40590 |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Come può, il titolo del topic, aiutare chi in futuro cercherà una soluzione questo problema?
Come fanno, i possibili interessati, a sapere cosa chiedi per sapere se lo sanno - gli interessa- o meno? Mah... Per dare comunque un reale contributo alla discussione, basta semplicemente che mostrando il link alla notizia scrivi dinamicamente dei dati, magari da passare in GET alla pagina che deve mostrare l'articolo (supponendo che si chiami "shownews.php", ad esempio "shownews.php?id_notizia=1) Poi dipende da come è strutturato il tuo database, passi dei riferimenti alla pagina che analizzandoli può effettuare una query al database recuperando il titolo della notizia e il corpo, poi da lì è tutta impaginazione dinamica del contenuto. Definisci la struttura e dentro i tags ci metti il contenuto. Per aprire una nuova pagina è semplice HTML.... usi l'attributo target del tag <a>. (che dice al browser "apri il link in una nuova pagina") Ciao.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1922
|
manderò un pvt al moderatore pere il titolo... scusate ma non ci ho proprio pensato.
cmq il problema non è recuperare i titoli dal database... quello lo so fare benissimo. 1) come visualizzo le news nella index? il problema è che l'index è html e non posso semplicemente inserire il codice php li... 2)so come fare a linkare una pagina... ma il problema è linkarla e, in base alla "parola" del link, visualizzare la nuova pagina in maniera dinamica... in pratica come faccio a leggere il titolo del link. Faccio un esempio: HWUPGRADE. in questo caso io dovrei leggere la parola HWUPGRADE per andarla a cercare nel database. se hai un suggerimento per il titolo del topic te ne sarei grato perchè non mi va bene.
__________________
CCIE Routing&Switching 40590 Ultima modifica di KuWa : 28-08-2009 alle 17:06. |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Quote:
lasciare il semplice html li com'è e dove vuoi le news inserisci il codice PHP tra i tag <?php e ?>... non vedo dov'è il problema. Se devi fare tutto dinamicamente questa è la soluzione - la pagina deve essere dinamica -... altrimenti dovresti modificare te a mano tutto... e non è una soluzione pensabile se le news non le inserisci tu, o comunque è assurdo dover usare un simile escamotage potendo usufruire del PHP. Riguardo l'aggiornamento automatico basta che fai una query in cui richiedi le ultime 5 news e poi fai un fetch del risultato stampando tutti i link e i titoli...
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov |
|
|
|
|
|
|
#5 | |||
|
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Chiedo scusa per il ritardo ma son dovuto uscire.
Allora. Quote:
Volendo potresti crearti una classe Template che carica in una variabile l'intero contenuto del file html, e crearti una specie di parser, che all'occorrenza di una certa stringa sostituisca il contenuto dinamicamente. Es. nel file html tra i tag <h1>e</h1> ci metti un tag speciale come potrebbe essere <$ titolo $> e sostituisci poi il tag speciale con il titolo, e cosi via... Altrimenti fai come sopra... metti il PHP nell'HTML. Quote:
Quindi, sapendo con che riferimento, estrai i contenuti dal database (ad esempio NEWS_ID), nella home crei il link "http://www.example.com/viewnews.php?id=ID_NEWS, dove id news il parametro di riferimento che ti fà riconoscere la news da estrarre (potrebbero essere più parametri). Cliccando sul link si apre la pagina viewnews.php?id=ID_NEWS, che legge il parametro get "id" e quindi inserisci l'id nella query per tirar fuori dal database quella news (cosi come l'hai recuperata con la query che ti ha permesso di creare il link dinamico). Ti ritorna quindi il risultato, effettui una fetch e recuperi tutti i dati che ti servono che verranno messi nel corpo della pagina e restituita... et voilà! Hai il tuo sistema di news.... il concetto è molto semplice. Quello della classe che richiama i template è un possibile metodo per tenere la logica separata dalla presentazione - per altro, secondo me un MUST se si programma OOP -. Spero di essere stato chiaro, nel caso dimmi cosa non ti torna. Quote:
Tu estrai le 5 news, ne recuperi i riferimenti (di solito nei database a ogni record si assegna un ID) e crei il link. Aperto il link la pagina legge l'ID passato tramite GET (accodato al nome del file) e recupera dal database il risultato corrispondente all'ID. Ripeto, il metodo è molto semplice, il concetto pure. Riguardo a un possibile nome... boh... mettici [php] Creare link dinamici per lettura news. Insomma, sintetizza il contenuto del topic. Ciao!
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov |
|||
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1922
|
quindi se cambio l'estensione dovrebbe funzionare se ho capito bene? quello che ho fatto è fare una query per le ultime 5 e prendere i risultati in un fetch no?
fin qui è semplice. Dopo hai detto Quote:
__________________
CCIE Routing&Switching 40590 |
|
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Quote:
Partiamo supponendo di avere una tabella come segue: Codice:
[ovviamente questo non è codice SQL] (nome della tabella: news) ID - Autoincrement Title - Varchar(30) Date - Int o una delle funzioni "date" di MySQL, che consiglio. // .... body etc etc Adesso effettui una query al database dicendogli esplicitamente "dammi solo i primi 5 record". Ecco un'esempio Codice:
SELECT ID, Title FROM news LIMIT 0, 5 Se li vuoi ordinare ti basta a questo punto addizionare alla query la clausola ORDER BY Date DESC (cosi saranno ordinati in modo decrescente- il primo articolo visualizzato è l'ultimo inserito). A questo punto è tutto PHP. Supponiamo di aver già effettuato la connessione, i dovuti controlli e la query è stata definita in una variabile $myquery. Codice PHP:
Codice PHP:
Codice:
Titolo del post (news del: 00/00/0000) A questo punto la questione link è risolta hai i link ordinati bell'e pronti. Ovviamente il link deve funzionare, quindi crei il relativo file viewnews in cui eseguirai le query in base al parametro GET che ricevi. I parametri GET li prendi cosi: Codice PHP:
Codice PHP:
Come vedi non è impossibile farlo, anzi è una delle cose più comuni con PHP (altrimenti non si giustificherebbe la dinamicità senza passaggio di parametri). Spero di essere stato esauriente. Per ulteriori referenze sulle funzioni o sulle query riferisciti direttamente ai siti ufficiali PHP e MySQL. Buona giornata. PS. Ci tengo a dire che solitamente i parametri vengono SEMPRE controllati per sicurezza, nel tuo caso un ID sbagliato inserito da un utente può dare un vecchio post se esistente, altrimenti un errore. Bisogna sempre controllare comunque gli input secondo il dato aspettato, perchè nel caso si effettuino query un po' più complesse o anche no, che comunque non sono controllate si lascia un buco verso attacchi di tipo SQL Injection. Nel passato - ma anche oggigiorno - anche siti di una certa portata sono stati colpiti da questi attacchi, fai ben attenzione.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov Ultima modifica di Y3PP4 : 29-08-2009 alle 10:59. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1922
|
grazie mille per l'esempio... in realtà non sapevo che dando il link nella maniera che mi hai consigliato tu (cioè passando come parametro l'id), dopo potevo fare il get nell'altro file come si può fare con i form.
__________________
CCIE Routing&Switching 40590 |
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Quote:
Leggi e capirai molte cose, come il limite di caratteri passabili per il metodo GET. Sottolineo, comunque che puoi passare più variabili nella forma .php?var1=value1&var2=value2 E cosi via. Ciao.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:08.



















