• User Attivo

    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!!


  • User Attivo

    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!:ciauz:


  • User Attivo

    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>).

    :ciauz:


  • User Attivo

    ma se lo metto prima del while, la tabella non la visualizza anche se non ci sono compleanni??


  • User Attivo

    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.


  • User Attivo

    si è colorata....


  • User Attivo

    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.

    :ciauz:


  • User Attivo

    potresti spiegarmi un po meglio x favore??
    non sono molto ferrato in php...sto iniziando ora..
    Grazie...


  • ModSenior

    se usi where non è meglio?

    il ciclo diventa più breve e usi meno il server...


  • User Attivo

    e che condizione metto nel WHERE?
    grazie


  • User Attivo

    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...


  • User Attivo

    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.
    :ciauz:


  • User Attivo

    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?


  • User Attivo

    $tot è una cosa, $somma è un'altra, nel cui merito non sono entrato: prova solo le modifiche indicate.
    :ciauz: