Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610

    problema recupero risultati in un ciclo

    Ho uno script di una newsletter dove invia a tutti gli utenti di un database un email. A parte inviare il testo della email, eseguo anche una "FUNTION" che stampa i compleanni del mese in corso. Se eseguo solo la FUNCTION senza il codice della Newsletter mi stampa a monitor correttamente 5 risultati (compleanni) per giugno, ma se invio la newsletter con il codice della Function mi stampa solo l'ultimo dei 5 risultati dove sbaglio?

    Questo é parte del codice della FUNTION BIRTHDATE():

    codice:
    Function Birthdate() {
    .....
    	
    $result = mysql_query("SELECT * FROM users where active = 1 AND MONTH(birthdate)= '$mese' order by DAY(birthdate)");
    		
    if (mysql_num_rows($result) == 0) 
    		{
    			echo "Error.";
    			$birthdate = "";
    		}
    		  else
    		{
    			while($row = mysql_fetch_array($result))
    			{
    				$data_euro = conv_date($row['birthdate']);
    				$birthdate = "( " . edad($row['birthdate']) . " ańos)";
    
    				if ($data_euro == "00/00/0000") 
    				{
    					$data_euro = "--/--/----";
    					$birthdate = "";
    				}
    				
    				$birthdate = $data_euro . " " . $row['fullname'] . " " . $birthdate . "
    ";
    				return $birthdate;				
    			}
    		}
    }
    M.Solazzi
    from
    Mexico City!!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    L'echo per la stampa a video lo metti dentro il while, vero?

    $birthdate = $data_euro . " " . $row['fullname'] . " " . $birthdate . "
    ";

    E' una variabile semplice, cosģ ad ogni ciclo viene sovrascritta, quindi alla fine avrai solo l'ultimo risultato, come fai tu equivale a una cosa cosģ:

    $variabile = "pippo";
    $variabile = "ciao";
    $variabile = "casa";
    return $variabile;

    alla fine verrą ritornato solo il valore "casa".

    Metti subito prima del while

    $birthdate = "";

    e dentro il while

    $birthdate .= $data_euro . " " . $row['fullname'] . " " . $birthdate . "
    ";

    Nota bene: .= col . davanti al simbolo =

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610
    ok provo

    grazie
    M.Solazzi
    from
    Mexico City!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610
    Non risolvo uguale dove sbaglio....

    codice:
    		$birthdate = "";
    		$result = mysql_query("SELECT * FROM users where active = 1 AND MONTH(birthdate)= '$mese' order by DAY(birthdate)");
    		if (mysql_num_rows($result) == 0) 
    		{
    			echo "Error.";
    			$birthdate = "";
    		}
    		  else
    		{
    			while($row = mysql_fetch_array($result))
    			{
    				$data_euro = conv_date($row['birthdate']);
    				$birthdate = "( " . edad($row['birthdate']) . " ańos)";
    
    				if ($data_euro == "00/00/0000") 
    				{
    					$data_euro = "--/--/----";
    					$birthdate = "";
    				}
    				
    				$birthdate .= $data_euro . " " . $row['fullname'] . " " . $birthdate . "
    ";
    				return $birthdate;				
    			}
    		}
    M.Solazzi
    from
    Mexico City!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610
    Ho risolto, effettivamente sbagliavo io chiamando un altra variabile con lo stesso nome e cosķ mi cancellava il risultato.
    M.Solazzi
    from
    Mexico City!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.