- Home
- Categorie
- Coding e Sistemistica
- PHP
- script compleanno
-
script compleanno
Ciao a tutti...vorrei creare uno script ke mi estrae le date dal database e controlla chi fa il compleanno...come faccio??
Ciau!!
-
ragazzi sono riuscito a crearmi lo script...ma ho un problema.
La mua intenzione è quella di far comparire una tabella se qualkuno fa il compleanno, altrimenti la tabella non si deve vedere.
Ho fatto così:
[PHP]$atleti=@mysql_query("SELECT * FROM atleti");
while($atl=mysql_fetch_array($atleti)){
$nome=$atl['nome'];
$cognome=$atl['cognome'];
$id=$atl['id_atl'];
$data=$atl['data'];
$comple=date("d-m",$data);
$oggi=date("d-m");
$anni=(date("Y"))-(date("Y",$data));
if($oggi==$comple){
echo "<table width="185" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><p style="margin-top: 0; margin-bottom: 0"><img src="images/box_comple/box_comple_01.png" width="185" height="37"></p>
<table width="185" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="7" valign="top" background="images/box_comple/box_comple_07.png"><img src="images/box_comple/box_comple_02.png" width="7" height="34"></td>
<td rowspan="3" valign="top" background="images/box_comple/box_comple_09.png"><p style="margin-top: 10; margin-bottom: 0"><div align="center"><a href="atleta.php?id=$id">$nome $cognome</a></div></p><p style="margin-top:0; margin-bottom: 0"><div align="center"><a href="atleta.php?id=$id">$anni Anni!</a></div></p></td>
<td width="7" valign="top" background="images/box_comple/box_comple_12.png"><img src="images/box_comple/box_comple_04.png" width="7" height="34"></td>
</tr>
<tr>
<td background="images/box_comple/box_comple_07.png"> </td>
<td background="images/box_comple/box_comple_12.png"> </td>
</tr>
<tr>
<td valign="bottom" background="images/box_comple/box_comple_07.png"><img src="images/box_comple/box_comple_16.png" width="7" height="23"></td>
<td valign="bottom" background="images/box_comple/box_comple_12.png"><img src="images/box_comple/box_comple_07-15.png" width="7" height="30"></td>
</tr>
</table>
<img src="images/box_comple/box_comple_17.png" width="185" height="16"></td>
</tr>
</table>";
}
}[/PHP]
Solo che non funziona alla perfezione, perchè in questo modo, se ci sono due persone ke fanno il compleanno lo stesso gg mi visualizza due tabelle...invece deve semplicemente aggiungere nella tabella il nome dell'altra persona ke fa il compleanno...capito?:?
se no cerco di cambiare metodo:D
Ciau e grazie!
-
Ciao talkoman,
devi semplicemente mettere l'apertura e la chiusura della prima tabella rispettivamente prima e dopo il ciclo while.
O aggiungi un controllo specifico per capire se va aperta e chiusa la tabella (cioè se ci sono compleanni) oppure prima dichiuderla aggiungi una riga vuota. (<tr><td></td></tr>).
-
ma se lo metto prima del while, la tabella non la visualizza anche se non ci sono compleanni??
-
Appunto devi trovare un'altro controllo o semplicemente quando la chiudi, inserisci una riga vuota: così la tabella c'è ma non si vede... almeno che non sia una tabella dai bordi visibili.
-
si è colorata....
-
beh, allora dopo la query ti calcoli:
$num_righe = mysql_num_rows($atleti);
quindi o modifichi il loop passando ad un ciclo for oppure metti una variabile a zero ($i=0) e per ogni loop la incrementi di un'unità.
Detto ciò, solo quando $i==1 e*** $i==$num_righe*** fai scrivere l'apertura e la chiusura della tabella.
-
potresti spiegarmi un po meglio x favore??
non sono molto ferrato in php...sto iniziando ora..
Grazie...
-
se usi where non è meglio?
il ciclo diventa più breve e usi meno il server...
-
e che condizione metto nel WHERE?
grazie
-
arieccomi...sembrava funzionare tutto bene...invece sto riscontrando dei problemi...
praticamente questo è lo script:[PHP]
<?php
$atleti=@mysql_query ("SELECT * FROM atleti");
$num_righe = mysql_num_rows($atleti);
$in=0;
while($atl=mysql_fetch_array($atleti)){
$c=1;
$somma=$in+$c;
$nome=$atl['nome'];
$cognome=$atl['cognome'];
$id=$atl['id_atl'];
$data=$atl['data'];
$comple=date("d-m",$data);
$anni=(date("Y"))-(date("Y",$data));
if($oggi==$comple){
if ($somma==1) {
echo "<table width="185" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><p style="margin-top: 0; margin-bottom: 0"><img src="images/box_comple/box_comple_01.png" width="185" height="37"></p>
<table width="185" border="0" cellspacing="0" cellpadding="0">";
}
echo "<tr>
<td width="7" valign="top" background="images/box_comple/box_comple_07.png"><img src="images/box_comple/box_comple_02.png" width="7" height="34"></td>
<td rowspan="3" valign="top" background="images/box_comple/box_comple_09.png"><p style="margin-top: 10; margin-bottom: 0"><div align="center"><a href="atleta.php?id=$id">$somma $nome $num_righe $cognome</a></div></p><p style="margin-top:0; margin-bottom: 0"><div align="center"><a href="atleta.php?id=$id">$anni Anni!</a></div></p></td>
<td width="7" valign="top" background="images/box_comple/box_comple_12.png"><img src="images/box_comple/box_comple_04.png" width="7" height="34"></td>
</tr>
<tr>
<td background="images/box_comple/box_comple_07.png"> </td>
<td background="images/box_comple/box_comple_12.png"> </td>
</tr>
<tr>
<td valign="bottom" background="images/box_comple/box_comple_07.png"><img src="images/box_comple/box_comple_16.png" width="7" height="23"></td>
<td valign="bottom" background="images/box_comple/box_comple_12.png"><img src="images/box_comple/box_comple_07-15.png" width="7" height="30"></td>
</tr>";if ($somma==$num_righe) { echo "</table> <img src=\"images/box_comple/box_comple_17.png\" width=\"185\" height=\"16\"></td> </tr> </table>"; } } }
?>
[/PHP]Benissimo in **$num_righe **in questo modo gli va a mettere il numero complessivo di tutti gli atleti presenti nel database...mentre dovrei estrarre solo quegli atleti la il cui mese e gg di nascita siano uguali a quelli di "oggi"...
come si fa una cosa del genere?
la data è salvata nel database in formato mktime.
Grazie tante...
-
Modifica le due righe:
if($oggi==$comple){
if ($somma==1) {in
$tot=0;
if($oggi==$comple){
$tot++;
if ($somma==1) {Cioè ogni volta che si verifica la condizione compleanno $tot viene incrementato di un'unità. Alla fine del ciclo while in $tot hai la quantità cercata.
-
e poi alla fine
[PHP] if ($somma==$num_righe) {
echo "</table>
<img src="images/box_comple/box_comple_17.png" width="185" height="16"></td>
</tr>
</table>";
[/PHP]lo lascio così o lo cambio con $tot?
-
$tot è una cosa, $somma è un'altra, nel cui merito non sono entrato: prova solo le modifiche indicate.