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

    Aiuto con array_search, giorni del mese e query

    ciao!

    non so se sto seguendo la strada giusta, ma in pratica ho una query che estrae il venduto giornaliero per mese ed anno.
    ovviamente non è detto che il venduto ci sia tutti giorni.....

    partendo dalla lista dei giorni di un dato mese/anno:
    Codice PHP:
    <tbody>
        <?php
        $query 
    $stDocumentiRighe->getSumDayMonthByNegozioAnnoChiusoTipo($negozio$anno11$mese$key);
        
    $qta 0;
        
    $netto 0;
        
    $lordo 0;
        
    $countVe 0;

        
    $startGiorno "01-" $mese "-" $anno;
        
    $startTime strtotime($startGiorno);
        
    $endTime strtotime("+1 month"$startTime);
        for (
    $i $startTime$i $endTime$i += 86400):
            
    $giornoNum date('j'$i);
            
    $giorno date('D'$i);

            
    $se array_search($giornoNumarray_column($query'giorno_num''anno'));
            
    ?>
            <tr>
                <td class="text-left"><?php echo $giornoNum ' - ' $giorno?></td>
                <!--<td class="text-right"><?php echo $qta?></td>-->
                <td class="text-right"><?php echo $se?></td>
                <td class="text-right"><?php echo number_format($netto2',''.'); ?></td>
                <td class="text-right"><?php echo number_format($lordo2',''.'); ?></td>
                <?php if ($anno == $annoCorrente): ?>
                    <td></td>
                    <td></td>
                <?php endif; ?>
            </tr>
        <?php endfor; ?>
    </tbody>
    in pratica ho pensato di cercare il giorno dentro all'array della query.
    se lo trova, visualizzare i dati di quel giorno, sennò non visualizzare nulla.

    non so se sono stato chiaro nello spiegare quello che mi serve!

  2. #2
    ho provato usando array_filter, che forse fa più al caso mio.

    Codice PHP:
    <tbody>
        <?php
        $query 
    $stDocumentiRighe->getSumDayMonthByNegozioAnnoChiusoTipo($negozio$anno11$mese$key);
        
    $qta 0;
        
    $netto 0;
        
    $lordo 0;
        
    $countVe 0;

        
    $startGiorno "01-" $mese "-" $anno;
        
    $startTime strtotime($startGiorno);
        
    $endTime strtotime("+1 month"$startTime);

        for (
    $i $startTime$i $endTime$i += 86400):
            
    $giornoNum date('j'$i);
            
    $giorno date('D'$i);
            
    ?>
            <tr>
                <td class="text-left"><?php echo $giornoNum ' - ' $giorno?></td>
                <!--<td class="text-right"><?php echo $qta?></td>-->
                <td class="text-right">
                    <?php
                    $filter 
    array_filter($query, function($item) use ($giornoNum) {
                        return 
    $giornoNum == $item['giorno_num'];
                    });
                    echo 
    $filter[0]['sum_qta'];
                    
    ?>
                </td>

                <td class="text-right"><?php echo number_format($netto2',''.'); ?></td>
                <td class="text-right"><?php echo number_format($lordo2',''.'); ?></td>
                <?php if ($anno == $annoCorrente): ?>
                    <td></td>
                    <td></td>
                <?php endif; ?>
            </tr>
        <?php endfor; ?>
    </tbody>
    però mi stampa il valore solo su un giorno, e mi accorpa le quantità.
    come se non "azzerasse" il filtro per ogni giorno.

  3. #3
    ho fatto questa modifica e sembra funzionare:
    Codice PHP:
    <tbody>
        <?php
        $query 
    $stDocumentiRighe->getSumDayMonthByNegozioAnnoChiusoTipo($negozio$anno11$mese$key);
        
    $qta 0;
        
    $netto 0;
        
    $lordo 0;
        
    $countVe 0;

        
    $startGiorno "01-" $mese "-" $anno;
        
    $startTime strtotime($startGiorno);
        
    $endTime strtotime("+1 month"$startTime);

        for (
    $i $startTime$i $endTime$i += 86400):
            
    $giornoNum date('j'$i);
            
    $giorno date('D'$i);
            
    ?>
            <tr>
                <td class="text-left"><?php echo $giornoNum ' - ' $giorno?></td>
                <!--<td class="text-right"><?php echo $qta?></td>-->
                <td class="text-right">
                    <?php
                    $filter 
    array_filter($query, function($item) use ($giornoNum) {
                        if (
    $giornoNum == $item['giorno_num']) {
    //                                                        echo $item['sum_qta'];
                            
    return $item;
                        }
                        return 
    '';
                    });
                    echo 
    $filter[0]['sum_qta'];
                    
    ?>
                </td>

                <td class="text-right"><?php echo number_format($netto2',''.'); ?></td>
                <td class="text-right"><?php echo number_format($lordo2',''.'); ?></td>
                <?php if ($anno == $annoCorrente): ?>
                    <td></td>
                    <td></td>
                <?php endif; ?>
            </tr>
        <?php endfor; ?>
    </tbody>

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.