Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con foreach e if

    ho uno stupido problema che nn riesco a risolvere:
    Codice PHP:
        foreach (showUtenti() as $compl) {
            if (
    $compl['utente_data'] == date('Y-m-d')) {
                echo 
    '<ul>[*]' $compl['utente_nome'] . ' - ' $compl['utente_cognome'] . ' - ' $compl['utente_email'] . ' - ' $compl['utente_data'] . '[/list]';
                echo 
    '<input type="submit" value="Send Compleanni" name="compl" />';
            } else {
                echo 
    'Non ci sono compleanni';
            }
        } 
    showUtenti() è una funzione che esegue la query.
    io vorrei ottenere questo: visualizzare solo gli utenti che hanno la data di nascita uguale alla data odierna.
    così invece ottengo tutti gli utenti per i quali la condizione è verificata, sia la scritta 'Non ci sono compleanni' per tutti gli altri.
    in più ottengo vari bottoni quanti sono le condizioni verificate.
    il perchè del comportamento lo so, ma nn riesco a risolvere.
    mi incarto sempre da qualche parte.

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Codice PHP:
    $blah=false;
    foreach (
    showUtenti() as $compl) {
            if (
    $compl['utente_data'] == date('Y-m-d')) {
                
    $blah=true;
                echo 
    '<ul>[*]' $compl['utente_nome'] . ' - ' $compl['utente_cognome'] . ' - ' $compl['utente_email'] . ' - ' $compl['utente_data'] . '[/list]';
                echo 
    '<input type="submit" value="Send Compleanni" name="compl" />';
            } 
        }
    if(!
    $blah){
          echo 
    'Non ci sono compleanni';   


    ma sarebbe meglio che risolvessi il problema a monte; estraendo dal db solo quelli di cui oggi e' il compleanno. Poi conti i risultati, se > 0 vai col foreach, altrimenti butti giu' la stringa che non ci sono compleanni

  3. #3
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    che tipo di campo è $compl['utente_data'] ?
    cosa ti restituisce
    codice:
     if ($compl['utente_data'] == date('Y-m-d'))
    io proverei direttamente con datediff()
    http://www.w3schools.com/sql/func_datediff_mysql.asp

  4. #4
    ho seguite le indicazioni di bubi1:
    Codice PHP:
    function showCompl() {
        global 
    $config;
        try {
            
    $result $config->getPdo()->query("SELECT * FROM utenti WHERE utente_data = curdate()");
            return 
    $result;
        } catch (
    Exception $e) {
            die(
    $e->getMessage());
        }
    }
    ..........
        if (
    showCompl()->rowCount() > 0) {
            foreach (
    showCompl() as $compl) {
                echo 
    '<ul>[*]' $compl['utente_nome'] . ' - ' $compl['utente_cognome'] . ' - ' $compl['utente_email'] . ' - ' $compl['utente_data'] . '[/list]';
            }
            echo 
    '<input type="submit" value="Send Compleanni" name="compl" />';
        } else {
            echo 
    'Non ci sono compleanni';
        } 
    così funziona.
    grazie!!

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.