Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    Visualizzare il guadagno della giornata odierna

    Buonasera
    ho bisogno di tirare fuori il guadagno delle prenotazioni odierne.

    Nel database tra i vari campi, ho "data_prenotazione" e "guadagno_netto"
    In data_prenotazione inserisco la data in formato 2021-08-19 22:32:15
    In guadagno netto inserisco la somma netta guadagnata da una prenotazione

    Adesso dovrei sommare il campo guadagno_netto e raggruppare solo le prenotazioni di oggi.

    Sto avendo un po' di problemi con date_format perche' devo togliere l'orario, in ogni caso non riesco a far funzionare la query in modo corretto.
    In pratica mi deve conteggiare solo le prenotazioni fatte dalla mezzanotte di oggi alle 23:59 di oggi e domani deve ripartire da zero.

    Come potrei modificare questo codice?
    codice:
    $data_odierna=date ("Y-m-d");
    //incasso del giorno
    $query_incasso_giorno = "select DATE_FORMAT(data_prenotazione, '%Y-%m-%d') AS data_prenotazione, SUM(guadagno_netto) as guadagno FROM prenotazioni WHERE data_prenotazione='$data_odierna' and cancellata='0' GROUP BY data_prenotazione ORDER BY id_prenotazione DESC";
    $risultato_incasso_giorno = $connessione->query($query_incasso_giorno) or die($connessione->error);
    while($riga_incasso_giorno = $risultato_incasso_giorno->fetch_assoc()) {
    $data_prenotazione = $riga_incasso_giorno['data_prenotazione'];
    $guadagno = $riga_incasso_giorno['guadagno'];
    $guadagno = number_format($guadagno, 2, ',', ' ');
    $guadagno = str_replace(",",".",$guadagno);
    }
    Dove sbaglio?
    Grazie

  2. #2
    puoi usare ... WHERE DATE(data_prenotazione)=CURDATE() ...

    poi, pls, un po' di formattazione quando postate le query...

    codice:
    SELECT
       DATE_FORMAT(data_prenotazione, '%Y-%m-%d') AS data_prenotazione,
       SUM(guadagno_netto) as guadagno 
    FROM
       prenotazioni 
    WHERE
       data_prenotazione = '$data_odierna' 
       and cancellata = '0' 
    GROUP BY
       data_prenotazione 
    ORDER BY
       id_prenotazione DESC
    Ultima modifica di optime; 20-08-2021 a 09:27

  3. #3

  4. #4
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    eccomi, grazie per l'aiuto
    Ho aggiunto anche GROUP BY DATE(data_prenotazione)=CURDATE() ed adesso sembra funzionare, ecco la query se dovesse servire ad altri
    codice:
    SELECT
       DATE_FORMAT(data_prenotazione, '%Y-%m-%d') AS data_prenotazione,
       SUM(guadagno_netto) as guadagno
    FROM
       prenotazioni
    WHERE
       DATE(data_prenotazione)=CURDATE()
       and cancellata = '0'
    GROUP BY
       DATE(data_prenotazione)=CURDATE()
    In effetti hai ragione, anche io la riesco a vedere meglio se la formatto in quel modo

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ho solo un problemino adesso
    quando non ci sono ancora prenotazioni, vorrei far uscire 0,00 €

    Sto facendo un controllo con

    $numero_prenotazioni = mysqli_num_rows($risultato_incasso_giorno); dicendo:

    codice:
    $guadagno_giornaliero = number_format($guadagno_giornaliero, 2, ',', ' ');
    if($numero_prenotazioni>"0"){
      $guadagno_giornaliero="$guadagno_giornaliero €";
      }
    else{
      $guadagno_giornaliero="0.00 €";
      }
    Pero' non funziona, non mi mostra lo 0.00 €
    Se poi scrivo echo"$numero_prenotazioni";
    quando ho 1-2-3 prenotazioni esce il numero, se ho 0 prenotazioni non esce niente, credevo uscisse almeno uno 0
    Come potrei controllare sta cosa?
    Grazie

  6. #6
    questa è materia di PHP, non di db ti conviene postare nel forum apposito

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da optime Visualizza il messaggio
    questa è materia di PHP, non di db ti conviene postare nel forum apposito
    ok ok

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    problema
    oggi vedo ancora gli incassi di ieri... non capisco perche'

  9. #9
    magari il tuo server è indietro fatti ritornare CURDATE() e controlla

  10. #10
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    se faccio
    codice:
    $data_odierna=date("d/m/Y g:i a");
    mi dice che è il 21/08/2021 ore 10:21 (il server va 2 ore indietro e non ho possibilità di modificarlo)
    Magari provo a togliere il curdate e a mettere $data_odierna?

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.