[PHP] Testo giornaliero automatico

  • Creatore Discussione Creatore Discussione Kolop
  • Data di inizio Data di inizio

Kolop

Utente Attivo
20 Mar 2017
57
0
6
26
Salve, vorrei inserire nel mio sito un testo che ogni giorno (ora italiana) cambia automaticamente. Più precisamente vorrei creare per esempio:
20/03/2017: Compleanno di Marco.
Poi domani 21/03/2017 alle 00.00 si dovrebbe aggiornare automaticamente in:
21/03/2017: Compleanno di Luca.
E così via giorno per giorno.
Lo so che non mi sono spiegato bene ma non so come spiegarlo...
Ho provato a cercare online ma sinceramente non so come scrivere per trovarlo e quindi chiedo a voi.
Se avete dei link da mandarmi di qualche guida o mi dite voi come fare vi sarei grato.
Grazie mille.
 
Ciao, grazie per le risposte. @borgo italia io so poco di php, js ecc. quindi dipende da come richiede il codice. Cioè io posso creare una tabella, un file .txt o altro. @peradev ho visto il link ma non ci capisco niente xD.
 
ciao
secondo me il metodo migliore è usare mysql e fare una tabella del tipo chiamata es compleanni, ti schematizzo
Codice:
id int(6) autoincrement primarykey
compleanno string(5)// esempio 04/03
utente string(50)
e riempirla con i vari dati es.
1 04/03 Sofonisba
2 21/11 Pancrazio
3 12/09 Asdrubale
4 21/11 Attenzio
...ecc...
poi nella pagina in cui vuoi far apparire gli auguri
PHP:
<?php
//...
$conn = mysqli_connect('tuo_host','tuo_username','tua_password','tuo_db') or die (mysqli_error());
$oggi=date("d/m");//leggi la data atuale, attento = a come è scritta in tabella
//interroghi il db
$query="SELECT utente FROM compleanni WHERE compleanno='$oggi' ORDER BY utente";
$ris=mysqli_query($conn, $query);
//e estrai i nomi degli utenti che compiono gli anni $oggi
while($riga=mysqli_fetch_assoc($ris)){
    $utenti[]=$riga['utente'];
}
//raggruppi i nomi
$compleanni_di_oggi=implode(", ",$utenti);//diventa es. Attenzio, Pancrazio
//e fai gli auguri
echo "buon compleanno $compleanni_di_oggi";
//....
?>
si intende il tutto condito con css
se però gli utenti sono pochi ci sono altri metodi, eventualmente te li posto
 
Ciao grazie @borgo italia fra un po' ci provo e vedo. Comunque la parte finale cioè il "buon compleanno" alla fine non mi serve perché a me basta che mi esce solo: Data e sotto i nomi. Comunque grazie. Ci provo e ti faccio sapere.
 
Ciao @borgo italia ho provato allora, siccome io non ci capisco molto di Mysql e non l'ho mai usato, ho creato una tabella ma questo codice dove lo devo mettere?
Codice:
id int(6) autoincrement primarykey
compleanno string(5)// esempio 04/03
utente string(50)

Grazie.
 
ciao
no no non è un codice, ma la struttura della tabella che puoi fare tramite phpMyAdmin, ma come dici l'hai gia fatta immagino con phpMyAdmin.
ora devi solamente riempirla con i dati o da phpMyAdmin o con uno script form html + script di insert che è la cosa migliore e più rapida e soprattutto più controllabile (a prova d'errore o quasi), se vuoi ti posto uno schema

dimenticavo:
eventualmente posta come hai fatto esattamente la tabella, sempre phpMyAdmin puoi ricaverne la struttura
 
Ciao @borgo italia scusa ma non ho mai fatto queste cose e quindi ricapitolando:
ho creato una tabella chiamata compleanni ma la strutta della tabella non l'ho fatta o boh.
Poi questi dati dove li devo mettere?
e riempirla con i vari dati es.
1 04/03 Sofonisba
2 21/11 Pancrazio
3 12/09 Asdrubale
4 21/11 Attenzio
...ecc...

e un'ultima cosa il codice PHP che mi hai dato sopra devo modificare solo la parte:
PHP:
$conn = mysqli_connect('tuo_host','tuo_username','tua_password','tuo_db') or die (mysqli_error());
o anche altro?
Grazie ma come ho già detto non ci capisco molto.
 
ciao
??non hai fatto la struttura? senza struttura non funziona. stai usando myAdmin?
poi nella riga $conn......
devi mettere i tuoi dati (che non posso conoscere)
se lavori in locale alla prima voce devi mettere localhost dove ho scritto tuo_host questa è l'unica che posso sapere
se lavori in remoto i dati deve fornirteli il tuo provider.

passiamo alla tabella cercando di fare chiarezza:
- con mysql puoi fare diversi database evidentemente con nomi diversi, es mio_db (in locale puoi sceglierlo tu, in remoto generalmente lo fornisce il provider)
- ogni database può avere diverse tabelle es mio_db può essere composto dalle tabelle chiamate es compleanni, eutenti ecc... (i nomi delle tabelle puoi sceglerli tu in locale e remoto)
- ogni tabella (vedi es excel) è formata di righe (record) da una o più, generlamente individuata da un identificativo quasi sempre chiamato id
- ogni record (riga) è formato da colonne (campi) ogni campo a avrà il suo nome, conviene sempre dare alle tabelle e ai campi dei nomi esplicativi (meglio usando sempre caratteri minuscoli) si evitano errori
- ogni campo poi conterrà qualcosa (numeri, caratteri alfanumerici, date....) quindi devo indicare cosa conterrà quel determinato campo.
veniamo, partendo da zero e in locale, quello che dovresti fare con myAdmin: lo chiami, se è la prima volta probabilmente vedrai un solo database esistente "prova", lascialo stare, quindi userai 'crea db' fatto, ti chiederà che nome vuoi dargli dai nome e salva,
nell'elenco tra i db ci sarà il nome che hai dato lo selezioni e vai a crea tabella
quando dai crea tabella ti chiederà
1) il nome della tabella (es. compleanni)
2) di quanti campi (colonne) sarà composta la tabella (per quella che stiamo esaminando il valore è 3)
al salva ti apparirà una schermata in cui andrai a definire i campi (in questo caso vedrai 3 righe)

...... ma continuo domani devo andare
 
Ciao @borgo italia grazie per la risposta. Io uso Altervista quindi a tuo_host a me esce: Hostname/server: localhost, quindi rimango localhost? Poi tuo_username, password e database già li ho compilati.
Per quanto riguarda il database Altervista ti fa usare PhpMyAdmin.
Ah poi una cosa che voglio specificare: i nomi delle persone che compiono gli anni non sono persone registrate sul mio sito ma devo fare io una lista e ogni giorno appare il nome della persona. Ci tenevo a specificare.
Comunque per quanto riguarda la tabella ho messo come nome compleanni e i campi per ora ho messo 3.
Poi non so come continuare quindi aspetto te. Grazie mille comunque per aiutarmi ma io non ci capisco niente..
 
ciao
se hai creato la tabella dovresti essere arrivato alla schermata simile a quella di fig 6 della guida che ti ho postato
o ci arrivi selezionando prima il db poi il nome della tabella e gli dai "mostra"
nella figura ogni riga rappresenta un campo e ogni colonna le caratteristiche che il campo deve avere.

vai sulla prima riga
nella colonna campo scrivi id
ti sposti sulla colonna tipo e definisci il tipo di contenuto inquesto caso int (intero)
ancora su lunghezza e scrivi es 6(non credo proprio che ti serva tanto di più)
ancora su attributi e cerchi autoincrement e lo selezioni
ancora sulla casella primaria e la selezioni
passi alle seconda riga
campo digiti compleanno tipo varchar lunghezza 5
passi alla terza riga
campo digiti nome tipo varchar lunghezza 50

fatto questo salvi

in alto della schermata trovi inserisci record, clicchi e ti si presenta la schermata di riempimento
NON scrivere nulla sul campo id, ci pensa lui avendogli dato autoincrement a aumentare di uno l'identificativo del record
nella campo compleanno scriverai es 02/04 (attento di scrivere le date sempre nello stesso modo)
e nel campo nome scrivi il nome Sofonisba Verdi
o dai inserisci altro record o se finito esegui

anche se poi sarà molto più comodo fare gli inserimenti via script php

p.s.
per i nomi dei campi seguei le regole dei nomi delle variabili php, meglio sempre tutti minuscoli (si evitano errori di digitazione) e che siano esplicativi
tieni presente che volendo in seguito puoi modificare la tabella
 
Ciao @borgo italia ho trovato un codice javascript che è molto semplice.
Il codice è questo:
HTML:
    <script language="JavaScript" type="text/javascript">
    <!--
    function frase_del_giorno() {
    // per ogni mese dell'mese crei un array contenete tutte le frasi (una per ogni giorno)
    febbraio=new Array();
    febbraio[0]="frase 1";
    febbraio[1]="frase 2";
    febbraio[2]="frase 3";
    febbraio[3]="frase 4";
    febbraio[4]="frase 5";
    febbraio[5]="frase 6";
    febbraio[6]="frase 7";
    febbraio[7]="frase 8";
    febbraio[8]="frase 9";
    febbraio[9]="frase 10";
    febbraio[10]="frase 11";   
    febbraio[11]="frase 12";
    febbraio[12]="frase 13";
    febbraio[13]="frase 14";
    febbraio[14]="frase 15";
    febbraio[15]="frase 16";
    febbraio[16]="frase 17";
    febbraio[17]="frase 18";
    febbraio[18]="frase 19";
    febbraio[19]="frase 20";
    febbraio[20]="frase 21";
    febbraio[21]="frase 22";
    febbraio[22]="frase 23";
    febbraio[23]="frase 24";
    febbraio[24]="frase 25";
    febbraio[25]="frase 26";
    febbraio[26]="frase 27";
    febbraio[27]="frase 28";
    febbraio[28]="frase 29: Questo è un anno bisestile";

    marzo=new Array();
    marzo[0]="frase 1";
    marzo[1]="frase 2";
    marzo[2]="frase 3";
    marzo[3]="frase 4";
    marzo[4]="frase 5";
    marzo[5]="frase 6";
    marzo[6]="frase 7";
    marzo[7]="frase 8";
    marzo[8]="frase 9";
    marzo[9]="frase 10";
    marzo[10]="frase 11";
    marzo[11]="frase 12";
    marzo[12]="frase 13";
    marzo[13]="frase 14";
    marzo[14]="frase 15";
    marzo[15]="frase 16";
    marzo[16]="frase 17";
    marzo[17]="frase 18";
    marzo[18]="frase 19";
    marzo[19]="frase 20";
    marzo[20]="frase 21";
    marzo[21]="frase 22";
    marzo[22]="frase 23";
    marzo[23]="frase 24";
    marzo[24]="frase 25";
    marzo[25]="frase 26";
    marzo[26]="Luca";
    marzo[27]="frase 28";
    marzo[28]="frase 29";
    marzo[29]="frase 30";
    marzo[30]="frase 31";

    agosto=new Array();
    agosto[0]="frase 1";
    agosto[1]="frase 2";
    agosto[2]="frase 3";
    agosto[3]="frase 4";
    agosto[4]="frase 5";
    agosto[5]="frase 6";
    agosto[6]="frase 7";
    agosto[7]="frase 8";
    agosto[8]="frase 9";
    agosto[9]="frase 10";
    agosto[10]="frase 11";
    agosto[11]="frase 12";
    agosto[12]="frase 13";
    agosto[13]="frase 14";
    agosto[14]="frase 15";
    agosto[15]="frase 16";
    agosto[16]="frase 17";
    agosto[17]="frase 18";
    agosto[18]="frase 19";
    agosto[19]="frase 20";
    agosto[20]="frase 21";
    agosto[21]="frase 22";
    agosto[22]="frase 23";
    agosto[23]="frase 24";
    agosto[24]="frase 25";
    agosto[25]="frase 26";
    agosto[26]="frase 27";
    agosto[27]="frase 28";
    agosto[28]="frase 29";
    agosto[29]="frase 30";
    agosto[30]="frase 31";


    settembre=new Array();
    settembre[0]="frase 1";
    settembre[1]="frase 2";
    settembre[2]="frase 3";
    settembre[3]="frase 4";
    settembre[4]="frase 5";
    settembre[5]="frase 6";
    settembre[6]="frase 7";
    settembre[7]="frase 8";
    settembre[8]="frase 9";
    settembre[9]="frase 10";
    settembre[10]="frase 11";
    settembre[11]="frase 12";
    settembre[12]="frase 13";
    settembre[13]="frase 14";
    settembre[14]="frase 15";
    settembre[15]="frase 16";
    settembre[16]="frase 17";
    settembre[17]="frase 18";
    settembre[18]="frase 19";
    settembre[19]="frase 20";
    settembre[20]="frase 21";
    settembre[21]="frase 22";
    settembre[22]="frase 23";
    settembre[23]="frase 24";
    settembre[24]="frase 25";
    settembre[25]="frase 26";
    settembre[26]="frase 27";
    settembre[27]="frase 28";
    settembre[28]="frase 29";
    settembre[29]="frase 30";

    ottobre=new Array();
    ottobre[0]="frase 1";
    ottobre[1]="frase 2";
    ottobre[2]="frase 3";
    ottobre[3]="frase 4";
    ottobre[4]="frase 5";
    ottobre[5]="frase 6";
    ottobre[6]="frase 7";
    ottobre[7]="frase 8";
    ottobre[8]="frase 9";
    ottobre[9]="frase 10";
    ottobre[10]="frase 11";
    ottobre[11]="frase 12";
    ottobre[12]="frase 13";
    ottobre[13]="frase 14";
    ottobre[14]="frase 15";
    ottobre[15]="frase 16";
    ottobre[16]="frase 17";
    ottobre[17]="frase 18";
    ottobre[18]="frase 19";
    ottobre[19]="frase 20";
    ottobre[20]="frase 21";
    ottobre[21]="frase 22";
    ottobre[22]="frase 23";
    ottobre[23]="frase 24";
    ottobre[24]="frase 25";
    ottobre[25]="frase 26";
    ottobre[26]="frase 27";
    ottobre[27]="frase 28";
    ottobre[28]="frase 29";
    ottobre[29]="frase 30";
    ottobre[30]="frase 31";

    novembre=new Array();
    novembre[0]="frase 1";
    novembre[1]="frase 2";
    novembre[2]="frase 3";
    novembre[3]="frase 4";
    novembre[4]="frase 5";
    novembre[5]="frase 6";
    novembre[6]="frase 7";
    novembre[7]="frase 8";
    novembre[8]="frase 9";
    novembre[9]="frase 10";
    novembre[10]="frase 11";
    novembre[11]="frase 12";
    novembre[12]="frase 13";
    novembre[13]="frase 14";
    novembre[14]="frase 15";
    novembre[15]="frase 16";
    novembre[16]="frase 17";
    novembre[17]="frase 18";
    novembre[18]="frase 19";
    novembre[19]="frase 20";
    novembre[20]="frase 21";
    novembre[21]="frase 22";
    novembre[22]="frase 23";
    novembre[23]="frase 24";
    novembre[24]="frase 25";
    novembre[25]="frase 26";
    novembre[26]="frase 27";
    novembre[27]="frase 28";
    novembre[28]="frase 29";
    novembre[29]="frase 30";

    dicembre=new Array();
    dicembre[0]="frase 1";
    dicembre[1]="frase 2";
    dicembre[2]="frase 3";
    dicembre[3]="frase 4";
    dicembre[4]="frase 5";
    dicembre[5]="frase 6";
    dicembre[6]="frase 7";
    dicembre[7]="frase 8";
    dicembre[8]="frase 9";
    dicembre[9]="frase 10";
    dicembre[10]="frase 11";
    dicembre[11]="frase 12";
    dicembre[12]="frase 13";
    dicembre[13]="frase 14";
    dicembre[14]="frase 15";
    dicembre[15]="frase 16";
    dicembre[16]="frase 17";
    dicembre[17]="frase 18";
    dicembre[18]="frase 19";
    dicembre[19]="frase 20";
    dicembre[20]="frase 21";
    dicembre[21]="frase 22";
    dicembre[22]="frase 23";
    dicembre[23]="frase 24";
    dicembre[24]="frase 25";
    dicembre[25]="frase 26";
    dicembre[26]="frase 27";
    dicembre[27]="frase 28";
    dicembre[28]="frase 29";
    dicembre[29]="frase 30";
    dicembre[30]="frase 31";

    // Inserisci tutti i mesi all'interno di un secondo array
    mese=new Array();
    mese[0]=gennaio;
    mese[1]=febbraio;
    mese[2]=marzo;
    mese[3]=aprile;
    mese[4]=maggio;
    mese[5]=giugno;
    mese[6]=luglio;
    mese[7]=agosto;
    mese[8]=settembre;
    mese[9]=ottobre;
    mese[10]=novembre;
    mese[11]=dicembre;

    // Crei un oggetto di tipo data contenete le data odierna e da questo estrai il giorno ed il mese
    oggi=new Date();
    oggi_g=oggi.getDate()-1;
    oggi_m=oggi.getMonth();

    var mese_selezionato=mese[oggi_m]; // inserisci il mese corrente all'interno di una variabile e...

    document.write(mese_selezionato[oggi_g]); // ... visualizzi la frase corrispondente al giorno
    }
    // -->
    </script>

    <div><script language="javascript" type="text/javascript">
    frase_del_giorno();
    </script></div>

Solo una cosa. Se io volessi aggiungere più di un nome a giorno devo per forza fare così:
marzo[26]="Luca - Laura - Alberto";
Non c'è un altro modo? Grazie comunque per avermi aiutato.
(Ho cancellato alcuni mesi perché il codice è troppo lungo e non mi faceva pubblicare)
 
ciao
io prfeferirei sempre mysql che forse devi studiare, ma poi è sempre più facile da gestire.
se non lo vuoi/puoi usare potresti fare così

ti fai un file chiamato compleanni.php in cui di folta in volta aggiungi i nomi e data
PHP:
<?php
$frase['Mario_Rossi']="07/03";
$frase['Sofonisba_Verdi']="12/12";
$frase['Pancrazio_Verdi']="27/08";
$frase['Attenzio_Bianchi']="27/08";
//.....e altri che puoi aggiungere non ti serve fare l'elenco di tutti e 365 (o 366) giorni dell'anno
//elabora
ksort($frase);//ordino alfabeticamente i nomi
$oggi=date("d/m");//leggi la data odierna
foreach($frase as $nome => $data){
    if($data==$oggi){
        /*
        sostituisci _ co spazio
        messo strtolower e ucwords se per caso
        ti dimentiche le maiuscole sul nome o sul cognome
        */
        $c[]=ucwords(strtolower(strtr( $nome , "_" , " " )));
    }
}
//crei l'elenco di nomi
$compleanni=date("d/m/Y").": ".implode(", ",$c);//messo separati da virgola e spazio, se vuoi puoi mettere altro
?>
poi nella pagina e nel punto in cui vuoi che appaia la scritta metti questo codice
PHP:
<?php
//.........
require_once "compleanni.php";//o se complenanni in cartella diversa "cartella/compleanni.php"

echo "$compleanni";
//.......
?>
p.s.
il require_once puoi metterlo anche all'inizio della pagina (anche prima del doctype html), basta che tu posizioni l'echo nel posto voluto
 
Ciao @borgo italia grazie il tuo codice è meglio così non c'è bisogno dell'elenco di tutti e 365-366 giorni.
Comunque preferisco il PHP perché lo sto anche studiando, MySql per ora è presto xD.
Solo una cosa. Io voglio che appare prima la data senza i : finali e poi sotto il nome e non affianco come faccio? Siccome è PHP non so come fare. Poi se volessi linkare il nome si può? Nel senso il giorno 28/03/2017 è il compleanno di Luca, posso linkare che cliccando sul nome vado su un link del mio sito? Se non si può fare non fa niente tanto non mi serve assai. Comunque grazie mille.
 
ciao
per andare a capo
PHP:
$compleanni=date("d/m/Y")."<br>".implode(", ",$c);
poi spiega meglio: ad ogni nome hai una pagina?
si è possibile, però attento, se non capisco male, mi sa che mysql mi sembra indispensabile
 

Discussioni simili