- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- [SCRIPT] News con utilizzo di un Database MySQL
-
Il link dal titolo lo puoi fare per come ti ho scritto un paio di post fa. Ti dovrai creare la pagina article.php però.
[URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile
-
Si, è esattamente ciò che ho fatto, ho crato la pagina article.php ed ho inserito il codice:
<span class="titlenews"><a href="article.php?id=<?php echo $row['id']; ?>" title="<?php echo $row['title']; ?>"><?php echo $row['title']; ?></a></span>Naturalmente il database è popolato...ma a video non vedo nulla, solo la pagina bianca
-
Ops forse solo ora comprendo....duro di comprendonio.
Dunque la pagina article.php, è naturalmente la pagina che comprenderà l'intero testo dell'articolo...mmm ecco allora a me manca lo script che andrà in news.php con il titolo linkabile
-
Allora quello che ti ho scritto prima è da sostituire nel file news.php.
Ovvero sostituire questo:
[php]<span class="titlenews"><?php echo $row['title']; ?></span>[/php]Con questo:
[php]<span class="titlenews"><a href="article.php?id=<?php echo $row['id']; ?>" title="<?php echo $row['title']; ?>"><?php echo $row['title']; ?></a></span>[/php]Il file article.php invece è da creare da zero, dovrai prelevare l'id dall'url con $_GET['id'] e quindi eseguire la query prelevando solo quell'id.
A questo punto per visualizzare la news più o meno lo script è uguale a quello contenuto in news.php, con le opportune modifiche che ti ho appena scritto.
-
Qualcosa non mi torna...(sarà perché vedo la pagina bianca?)...
dunque ho 1 pagina che 'stampano a video' quello che con tanta maestria tu hai ideato, trattasi della pagina news.php, dove inserisco il codice:<?php
require_once ("news/config.php");
include ("news/news.php");
?>
per vedere le mie belle news!
e fin qui tutto ok. Ora vorrei fare che un titolo linkabile sia stampato nella pagina news.php e il contenuto si legga in article.php
Quindi in news inserisco:<span class="titlenews"><a href="article.php?id=<?php echo $row['id']; ?>" title="<?php echo $row['title']; ?>"><?php echo $row['title']; ?></a></span>
e in article?
Secondo grosso problema, in news, inserendo quel codice io la notizia linkabile non la vedoSicuro che non era meglio che dal 2009 non parlavo?
-
Hai sostituito per come ti ho detto?
Se si prova a verificare il sorgente pagina, magari mi sfugge qualcosa.
Per article.php prova a ricopiare il contenuto di news.php ed a sostituire:
[php]$sql= "SELECT * FROM news WHERE publish=1
AND publish_data<='$time'
AND (unpublish_data>='$time' OR unpublish_data=0)
ORDER BY publish_data ".$order."";
if ($limit!="" || $limit!=0) // verifichiamo se abbiamo deciso di vedere tutte le news o solo alcune
{
$sql .=" LIMIT 0,".$limit.""; // se abbiamo impostato un limire estraiamo dai risultati della query solo quelle che ci interessano
}[/php]Con:
[php]$id=$_GET['id'];
$sql="SELECT * FROM news WHERE id='$id'";[/php]
-
Quasi perfetto...
le cose che mi mancano sono:
nella pagina news deve essere a video solo il titolo link, senza descrizionenella pagina article invece solo la notizia linkata senza le altre...
dato che ora accade che nella pagina news ho le notizie con titolo a link e già comprensive di descrizione e nella pagina article sia le notizie come nella home che la notizia come dovrebbe essere in modo corretto (quindi la stessa notizia ripetuta)
-
ok risolto
grazie mille
-
Di nulla.
[URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile
-
Arieccomi!
Ciao, come stai? volevo chiederti un regalino per natale
Necessiterei di prelevare dal fantastico script tuo, le ultime 3 news e fin qui credo di esserci riuscito facendo così:$sql="SELECT * FROM news WHERE publish=1
AND publish_data<='$time'
AND (unpublish_data>='$time' OR unpublish_data=0)
ORDER BY publish_data DESC LIMIT 3";Quello che mi serve è ora invece di vedere le news una sotto l'altra, vederle affiancate, in 3 div accostati...
grazie molte
-
Ciao!!
Bene dai, mi godo il giorno di riposoPotresti provare ad inserire uno style="float:left" ai <div> aggiungendo dopo un:
[html]<div style="clear:both"></div>[/html]
Spero di averti fatto il regalo di Natale!!Buone feste!!!
-
Ciao,
ho provato a fare quanto mi hai detto, ma le vedo sempre in forma di lista e non affiancate....
-
Hai ragione, lo avevo impostato con un solo <div> contenitore unico.
Dovresti includere gli <span> della news dentro un <div> contenitore ed a questo dare lo style di cui sopra.
-
Questo lo script, credo ci sia un problema nell'inserimento del div e del ciclo, non so come ottimizzarlo per vederle orizzontali le news...e poi ho inserito il float:left; nel css
<link href="news_style.css" rel="stylesheet" type="text/css" />
[php]<? require_once ("config.php");
$time=time(); // preleviamo dal server il timestamp attuale
/** selezioniamo i dati dalla nostra tabella news prelevando solo i dati da pubblicare,- che abbiano una data di pubblicazione inferiore o uguale alla data odierna
- che abbiano la data di fine pubblicazione maggiore o uguale alla data odierna oppure uguale a 0 (che indica che non ha scadenza)
- ordiniamo alla fine per data di pubblicazione ASC o DESC a seconda della scelta da noi effettuata all'atto dell'installazione
-
ed infine estraiamo solo il numero di news che ci interessano.
*/
$sql="SELECT * FROM news WHERE publish=1
AND publish_data<='$time'
AND (unpublish_data>='$time' OR unpublish_data=0)
ORDER BY publish_data DESC LIMIT 3";
$query=@mysql_query($sql) or die (mysql_error());
?>
<!--
<div id="contentnews">
--><div id="contentnews" style="clear:both">
<?
// cicliamo adesso il risultato della nostra query per visualizzare le nostre news
while ($row=mysql_fetch_array($query))
{
?><span class="titlenews"><? echo $row['title']; ?></span><br /> <span class="datanews">Data: <? echo date("d/m/Y", $row['publish_data']); ?></span><br /> <!-- avendo salvato il valore data in timestamp utilizziamo la funzione date per visualizzare la data nel formato italiano --> <? echo html_entity_decode($row['text']); // la funzione html_entity_decode serve a ritrasformare le entità HTML create dall'editor in tag ?>
</div>
<?
}
?>
<!--
</div>
-->[/php]
-
Scusa ho letto dopo la tua risposta, ma mi sono perso....
Ho inserito sia float:left che clear:both dentro il css e il resto dello script come sopra, ma non cambia nulla.
-
Dovresti includere gli <span> della news dentro un <div> contenitore ed a questo dare lo style di cui sopra
Potresti spiegarmi un po meglio...perdonami...ma sappi che mezzo busto in tuo onore è già fatto!
-
[php]<?php require_once ("config.php");
$time=time();
$sql="SELECT * FROM news WHERE publish=1
AND publish_data<='$time'
AND (unpublish_data>='$time' OR unpublish_data=0)
ORDER BY publish_data DESC LIMIT 3";
$query=@mysql_query($sql) or die (mysql_error());
?>
<div id="contentnews"><?php
while ($row=mysql_fetch_array($query))
{
?>
<div style="float:left;width:16%">
<span class="titlenews"><?php echo $row['title']; ?></span><br />
<span class="datanews">Data: <?php echo date("d/m/Y", $row['publish_data']); ?></span><br />
<?php echo html_entity_decode($row['text']); ?></div>
<?php
}
?>
<div style="clear:both"></div>
</div>
[/php]Prova così.
@frazoo said:...ma sappi che mezzo busto in tuo onore è già fatto!
Esagerato!!!
-
Grazie davvero... la statua è quasi pronta. Al momento ti faccio i miei più sentiti auguri di buon natale, ma dopo può essere che torno a disturbarti
Grazie.
-
Buon Natale anche a te.
P.S. Come da regolamento ti invito a far attenzione alle regole base della scrittura: maiuscola ad inizio frase e punteggiatura. Ne guadagneremo tutti in leggibilità del Thread.
-
Ciao, ho il seguente problema (credo che qualcosa non funzioni a perfezione):
ho impostato nel pannello d'installazione, l'ordine di visualizzazione delle news decrescente (quella di default per intenderci).
Mi serviva che in prima pagina apparissero solo le ultime 3 news e che cliccando sul tasto leggi tutto, venissi indirizzato in una pagina contenente l'intero elenco delle news, così come previsto.
Mi hai aiutato nel creare lo script della selezione delle ultime 3 news:
<?php require_once ("config.php");
$time=time();
$sql="SELECT * FROM news WHERE publish=1
AND publish_data<='$time'
AND (unpublish_data>='$time' OR unpublish_data=0)
ORDER BY publish_data DESC LIMIT 3";
$query=@mysql_query($sql) or die (mysql_error());
?>Il problema è che io vedo sempre solo le prime 3 news.
Non so se la questione è legata alla data, quindi se inserisco 4 news alla data odierna, comunque leggerò sempre le prime 3 o se c'è altro.
Potresti gentilmente aiutarmi?
Grazie davvero