Visualizzazione risultati 1 fino 12 di 12
Like Tree3Likes
  • 1 Post By mzanella
  • 1 Post By mzanella
  • 1 Post By mzanella

Discussione: risultato ogni tot di punti

  1. #1
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito risultato ogni tot di punti

    ciao a tutti voi e spero molto nel vostro aiuto in questa situazione che non saprei proprio come poter creare, spero di spiegarmi al meglio con questo esempio

    A da una tabella visualizzo tutti i clienti con i vari dati

    nome-----cognome-----data registr-----tessera-----punti-----spesa-----buoni
    luigi-----pippo-----16/10/2020-----5555555-----636-----€ 140,00-----19.44

    B i punti vengono poi convertiti in buoni ed ogni 25 (25,50,75,100 ecc ecc) il testo diventi di colore verde mentre se non arriva a 25 il colore rimanga nero

    se come adesso l'utente pippo a 19.44 il testo rimane nero, se arriva a 25 diventi verde, se diventa 25.44 torna nero se arriva a 50 diventi verde e cos via

    spero di essermi spiegato al meglio e scusatemi se non sono stato preciso

    ps ho gi tutto pronto mi manca solo questa opzione
    Ultima modifica di puntifedelta : 17-10-2020 alle ore 09.58.39

  2. #2
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,685

    Predefinito

    se arriva a 25 diventi verde, se diventa 25.44 torna nero se arriva a 50 diventi verde e cos via
    Questo concetto pu essere formalizzato come:
    Codice:
    colore = verde, se "buoni"  multiplo di 25
             nero, altrimenti
    Per capire se un valore multiplo di un altro puoi verificare se intero usando la funzione is_int e se il resto della divisione intera uguale a 0 utilizzando l'operatore % (modulo).
    Assumendo che $row['buoni'] contenga i buoni letti dalla base di dati:
    Codice PHP:
    if (is_int($row['buoni']) && $row['buoni'] % 25 === 0) {
        
    $color 'green';
    }
    else {
        
    $color 'black';

    o, in forma pi compatta:
    Codice PHP:
    $color = (is_int($row['buoni']) && $row['buoni'] % 25 === 0) ? 'green' 'black'
    Potrai quindi applicare il colore agli elementi del DOM nel modo che pi ritieni opportuno, per esempio usando l'attributo style e assegnando un colore, oppure assegnando diverse classi.
    Ultima modifica di mzanella : 17-10-2020 alle ore 10.23.11
    puntifedelta likes this.

    I suggerimenti che do pi spesso:


  3. #3
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito

    vorrei fornirti il mio codice php ma non vedo nessuna opzione per inserirlo

  4. #4
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito

    spero di non sbagliare ad inserire il codice php e mi scuso io utilizzo questo (e da ieri che ammattisco)
    if(($somma_puntis % 25) == 0 AND $somma_punti > 0){
    echo "<tr style='color: green'>";
    }else{
    echo "<tr>";
    }
    mostra il colore verde ma se cambio il valore meno o pi di 25 rimane sempre evrde

  5. #5
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,685

    Predefinito

    Fai riferimento al messaggio precedente.
    Non stai controllando se $somma_punti un valore intero, inoltre hai scritto $somma_puntis con una "s" alla fine, sembra un errore.

    I suggerimenti che do pi spesso:


  6. #6
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito

    si perch una somma ti allego qui il codice sperando di non sbagliare cos puoi capire meglio
    Codice:
    <?php while($row = mysqli_fetch_array($result)) {
    
                              $somma_punti = 0;
                              $totale_spesa = 0;
    
                              $query_totale ="SELECT punti.id_cliente, punti.punti, punti.spesa, calcolo_punti.calcolo FROM punti
                              INNER JOIN calcolo_punti where id_cliente=$row[id_cliente]";
                              $risultato_totale = mysqli_query($connect, $query_totale);
                              while($somma = mysqli_fetch_array($risultato_totale))
                              {
                                $somma_punti = $somma_punti + $somma ['punti'];
                                $totale_spesa = $totale_spesa + $somma['spesa'];
                                $data = $somma['data_punti'];
                                $somma_puntis = $somma_punti / $somma ['calcolo'];
    
                              }
                              if(($somma_puntis % 25) == 0 AND $somma_punti > 0){
                                echo "<tr style='color: green'>";
                                }else{
                                echo "<tr>";
                                }
    
                              echo "<td style='text-transform: capitalize;'>" . $row['nome'] . "</td>";
                              echo "<td style='text-transform: capitalize;'>" . $row['cognome'] . "</td>";
                              echo "<td>" . $row['whatsapp'] . "</td>";
                              echo "<td>" . $row['email'] . "</td>";
                              echo "<td>" . $row['data_reg'] . "</td>";
                              /* "<td>" . $row['accetta'] . "</td>";*/
                              echo "<td>" . $row['tessera'] . "</td>";
                              echo "<td>" . $somma_punti . "</td>";
                              echo "<td>" . "€ ".number_format($totale_spesa, 2, ',', '') . "</td>";
                              echo "<td>";
                              if($somma_punti != 0){echo round($somma_puntis, 2);}else{echo "0.00";}
                              echo "</td>";
                              echo '<td>
                              <a href="punticliente.php?id_cliente='
                              . $row['id_cliente'] . '" class="btn btn-icon btn-primary btn-sm" data-toggle="tooltip" title="Aggiungi Punti">
                              <i class="fa fa-pencil"></i></a>
    
                              <a href="clienteprofilo.php?id_cliente='
                              . $row['id_cliente'] . '" class="btn btn-icon btn-info btn-sm" data-toggle="tooltip" title="Profilo Cliente">
                              <i class="fa fa-info-circle"></i></a>
    
                              </td>';
                              echo "</tr>";
                              unset($somma_punti);
                              unset($somma_puntis);
                              unset($totale_spesa);
                              unset($data);
                            }?>
    il cliente che mi arriva a 25 diventa verde ma se minore o superiore il colore rimane sempre verde
    Ultima modifica di alemoppo : 17-10-2020 alle ore 16.18.26 Motivo: +tag

  7. #7
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,685

    Predefinito

    C' qualche motivo particolare per cui non vuoi utilizzare is_int?

    I suggerimenti che do pi spesso:


  8. #8
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito

    perch se lo inserisco

    if(is_int($somma_puntis % 25) == 0 AND $somma_punti > 0){
    echo "<tr style='color: green'>";
    }else{
    echo "<tr>";
    }

    il colore rimane nero anche se l'utente ha i buoni a 25

  9. #9
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito

    perdonami tanto ma incollavo sempre lo stesso codice senza accorgermi della modifica perdonami ancora

    cos fuzniona

    if(is_int($somma_puntis) && $somma_punti % 25 === 0){
    echo "<tr style='color: green'>";
    }else{
    echo "<tr>";
    }

  10. #10
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,685

    Predefinito

    Edit: il problema stato risolto mentre scrivevo . Ben fatto!

    Devi usarlo come mostrato nel primo messaggio:
    Codice PHP:
    if(is_int($somma_puntis) && $somma_puntis 25 === && $somma_punti 0){ 
    non
    Codice PHP:
    if(is_int($somma_puntis 25) == AND $somma_punti 0){ 
    Quest'ultima non va bene, ovviamente sempre falsa: prima calcoli $somma_puntis % 25 che un intero per definizione di modulo, poi chiami is_int sul risultato, che restituisce sempre true proprio perch il risultato del modulo un intero. Poi confronti true con 0 usando l'operatore di uguaglianza (debole), il risultato certamente false e le righe sono quindi tutte nere.

    Questo diverso da verificare che il valore sia un intero e, al tempo stesso, il resto della divisione intera per 25 sia 0. Se non un intero un numero con la virgola, quindi non pu essere multiplo di 25 e la condizione deve essere valutata come false. Altrimenti, il valore un intero, e in quel caso la propriet di essere multiplo di 25 soddisfatta se e solo se il resto della divisione intera 0: se questo accade il valore nella forma 25 * k, k in Z, ed corretto mostrare la riga verde. Se ci non accade il valore nella forma 25 * k + n, k in Z, n in N intersecato [1; 24], ed corretto che la riga sia nera.
    puntifedelta likes this.

    I suggerimenti che do pi spesso:


  11. #11
    puntifedelta non  connesso Neofita
    Data registrazione
    08-10-2020
    Messaggi
    11

    Predefinito

    grazie ancora ho effettuato l'ultima modifica da te suggerito e scusami ma non mi ero proprio accorto che incollavo sempre lo stesso codice

  12. #12
    mzanella non  connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,685

    Predefinito

    Non preoccuparti, ci mancherebbe
    puntifedelta likes this.

    I suggerimenti che do pi spesso:


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •