Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-08-2009, 14:47   #1
KuWa
Senior Member
 
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1923
[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
KuWa è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2009, 15:02   #2
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Quote:
Originariamente inviato da KuWa Guarda i messaggi
se avete ulteriori domande chiedete.
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
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2009, 16:02   #3
KuWa
Senior Member
 
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1923
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 16:06.
KuWa è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2009, 16:11   #4
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Quote:
Originariamente inviato da KuWa Guarda i messaggi
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.
Il metodo più semplice è usare un formato .php
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
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2009, 18:32   #5
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Chiedo scusa per il ritardo ma son dovuto uscire.
Allora.
Quote:
Originariamente inviato da KuWa Guarda i messaggi
1) come visualizzo le news nella index? il problema è che l'index è html e non posso semplicemente inserire il codice php li...
Per farlo dinamicamente, hai bisogno di una pagina dinamica, nel tuo caso PHP è la risposta.
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:
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.
Nella pagina usando PHP leggi le ultime 5 news dal db, quindi prendi il titolo è lo usi come testo (visualizzato) del link, nel attributo href, ci linki una pagina che si occupa di recuperare le news, che accetta i parametri in GET.
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:
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.
Se devi estrarre le ultime 5 news non serve questa logica... non è un motore di ricerca... (per altro, semplicisticamente risolvibile con una buona query... a meno che tu non voglia competere con google).

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
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2009, 00:44   #6
KuWa
Senior Member
 
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1923
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:
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
. qua ho capito cosa intendi ma come lo faccio? puoi farmi un esempio?
__________________
CCIE Routing&Switching 40590
KuWa è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2009, 09:52   #7
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Quote:
Originariamente inviato da KuWa Guarda i messaggi
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
. qua ho capito cosa intendi ma come lo faccio? puoi farmi un esempio?
Allora, vado direttamente con un esempio *incompleto* giusto per farti capire come procedere.

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
Ho solo specificato il campo ID e Title perchè sono probabilmente i due campi (salvo diversa disposizione della tabella) che ti trovi ad usare per trovare una news.
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
Nota la clausola LIMIT che, in questo caso, dice al database dammi solo i primi cinque record.
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:
$result mysql_query$query$database ); 
Ora fai un fetch del risultato con una bella chiamata a mysql_fetch_array, lo metti come segue in un ciclo while, come da esempio:
Codice PHP:
while( $row mysql_fetch_array$result ) )
{
    echo 
"<a href=\"viewnews.php?id_news=$row[id]\">$row[titolo]<\a><br />";

Questo è un semplice ecempio, volendo puoi anche metterci la data accando al titolo o tra parentesi producendo un ipotetico risultato come segue:
Codice:
Titolo del post (news del: 00/00/0000)
- questo risultato ovviamente se metti tra parentesi la data , altrimenti solo il titolo del post)

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:
$news=$_GET['id_news'];
$myquery "SELECT * FROM news WHERE ID='$news'"
A questo punto, nuovamente effettui un fetch (essendo solo uno il record ovviamente non cicli nulla), ottieni quindi i vari valori e poi nel documento HTML piazzi le variabili come
Codice PHP:
<h2>$row[title]</h2><p>$row[body]</p
E cosi via...
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 09:59.
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2009, 10:21   #8
KuWa
Senior Member
 
Iscritto dal: Aug 2002
Città: Udine
Messaggi: 1923
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
KuWa è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2009, 12:14   #9
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Quote:
Originariamente inviato da KuWa Guarda i messaggi
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.
Beh se dai un occhiata alla documentazione HTTP riguardante i metodi di interazione tra i tanti trovi GET e POST.
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
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Avio si prepara ai test del Dimostratore...
Space Pioneer ha annunciato le cause del...
Anthropic avrebbe nuovi antibiotici cont...
Scoperto un 'moltiplicatore nascosto' ne...
DREO: a IFA 2026 4 novità fra cui...
Slackbot genera dashboard e microsite de...
Idrogeno, nuova cella a combustibile rag...
Con la NASA fuori dai giochi, l'ESA risc...
Una falla di ChatGPT permette di estrapo...
Piano clima, 1,34 miliardi per il bonus ...
Porsche esce definitvamente da Bugatti R...
NVIDIA App aggiunge una delle funzioni p...
Come sarebbe il mondo se la luce viaggia...
Titanio, ceramica e zaffiro per HUAWEI W...
Taglio delle accise sul gasolio prorogat...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v