- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- [SCRIPT] News con utilizzo di un Database MySQL
-
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
-
Ciao frazoo.
La select è molto chiara:
ORDER BY publish_data DESC LIMIT 3";Ordina per data pubblicazione decrescentee seleziona solo i primi tre (tradotto, dato l'ordinamento, gli ultimi tre in ordine cronologico - secondo la data pubblicazione).
Hai verificato inserendo date pubblicazione successive a quelle tre?
(ovviamente non successive alla data odierna )EDIT: e verifica anche eventuali date di fine pubblicazione.
-
Ciao,
ho provveduto cambiando la select in
ORDER BY ID DESC LIMIT 3
Dato che il controllo effettuato sulla data di pubblicazione, non permetteva un controllo sull'orario, quindi se venivano inserite 4 news nello stesso giorno, le stesse erano inserite senza tener conto di un reale tempo di inserimento.
Grazie
-
Ciao a tutti, sono nuovo del forum.
Un doveroso ringraziamento a Samyorn@
Era proprio quello che stavo cercando per il mio sito. Per adesso l'ho provato in locale e funziona perfettamente. Davvero un'ottimo lavoro.
Grazie.Bello trovare la pappa pronta! Se dovevo scrivermi il codice da solo facevo questa fine
-
Prima di tutto volevo ringraziare Samyorn per il lavoro svolto ma sopratutto per averlo condiviso.
Ora passo alla piccola richiesta,fuonziona tutto a meraviglia,vorrei capire come poter visualizzare in homepage solamente le prime righe della news,calcolando che ne visualizzo solamente una l'ultima.
Grazie anticipatamente Claudio
-
E'èè già,sono ancora qua,scherzi a parte sto diventando matto da tre giorni per cercare di creare la paginazione delle news,lo so io di php non ci capisco nulla,potreste darmi un aiutino.
Altra cosa che non ho ancora capito,creo la news (la tengo una settimana),cancello la news dal pannello admin ma l'id del database non si aggiorna es:
id 1 blabla pubblicata
id 2 blabla pubblicata
id blabla cancellata
id 4 blabla pubblicata
Come posso spostare l'id 4 al 3 ?
Credo d'aver capito che la paginazione corretta possa funzionare solamente in questo modo.
Ringrazio anticipatamente Claudio
-
Ciao radacl,
scusa ma sono settimane di fuoco, vedo di aiutarti per le due questioni:
@radacl said:...poter visualizzare in homepage solamente le prime righe della news,....
Utilizzando la funzione substr() tronchi il testo della news alla lunghezza desiderata. Nel file news.php modifica questo:
[php]<? echo html_entity_decode($row['text']);[/php]con questo:
[php]<? echo substr(html_entity_decode($row['text']),0,100);[/php]Visualizzerai così i primi 100 caratteri, poi lo modifichi tu a tuo piacimento.
@radacl said:
....Altra cosa che non ho ancora capito,creo la news (la tengo una settimana),cancello la news dal pannello admin ma l'id del database non si aggiorna es:
id 1 blabla pubblicata
id 2 blabla pubblicata
id blabla cancellata
id 4 blabla pubblicata
Come posso spostare l'id 4 al 3 ?
Credo d'aver capito che la paginazione corretta possa funzionare solamente in questo modo.L'ID è un campo chiave autoincrement, se cancelli la news il numero ormai è preso e non viene riassegnato.
Per fare quello che hai descritto ho inserito la data di fine pubblicazione appositamente, ovvero la news è pubblicata e "visibile" fino alla data di fine pubblicazione, dalla data di inizio pubblicazione.
Lo script ordinerà comunque le news secondo la data di pubblicazione, decrescente o meno a seconda di come tu lo hai impostato.