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 Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    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,954

    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 Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito

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

  4. #4
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    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,954

    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 Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    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,954

    Predefinito

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

    I suggerimenti che do più spesso:


  8. #8
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    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 Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    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,954

    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 === 0 && $somma_punti > 0){
    non
    Codice PHP:
    if(is_int($somma_puntis % 25) == 0 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 Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    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,954

    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
  •