• User Attivo

    ok grazie, adesso faccio qualche prova, magari se non riesco posto il codice...


  • ModSenior

    Bene se posso e se sarò sveglio o se non passa qualcun altro prima spero di aiutarti. 🙂


  • User Attivo

    Dovresti avere un campo della tabella del db che assume un determinato valore...
    Esempio (che vale più di mille parole...)

    Nome campo: 'stato'
    Valore: 'evaso' oppure 'respinto'

    Presumo che tu utilizzi un ciclo while per elencare i record, mettiamo che memorizzi i valori dei campi in una variabile di nome '$var' e che vuoi evidenziare in giallo la riga...

    Dove stampi a video i risultati... visto che utilizzi una tabella html:

    [php]
    if ($var['stato']=='evaso') {
    echo '<tr style="background-color: yellow;">';
    } else {
    echo '<tr>';
    }
    [/php]


  • User Attivo

    Niente, dove sbaglio?

    [PHP]<?php
    // mi connetto al database
    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('test', $conn) or die(mysql_error());

    // visualizzo le intestazioni della tabella
    echo <<<EOF
    <table>
    <tr>
    <th>Nome</th>
    <th>Cognome</th>
    <th>Telefono</th>
    <th>stato</th>
    </tr>
    EOF;

    // query che recupera i dati dal db
    $query = mysql_query("SELECT * FROM lista ORDER BY nome ASC");

    while($var = mysql_fetch_assoc($query))
    {
    //prova
    if ($var['stato']=='evaso') {
    echo '<tr style="background-color: yellow;">';
    } else {
    echo '<tr>';
    }
    // visualizzo i dati estratti
    echo <<<EOF
    <tr>
    <td>{$var['nome']}</td>
    <td>{$var['cognome']}</td>
    <td>{$var['telefono']}</td>
    <td>{$var['stato']}</td>
    </tr>
    EOF;

    }

    // chiudi la tabella
    echo <<<EOF
    </table>
    EOF;

    // chiude la connessione
    mysql_close($conn) or die(mysql_error());
    ?>

    [/PHP]
    :bho:


  • User Attivo

    Prova così:
    [php]
    <?php
    // mi connetto al database
    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('test', $conn) or die(mysql_error());

    // visualizzo le intestazioni della tabella
    echo <<<EOF
    <table>
    <tr>
    <th>Nome</th>
    <th>Cognome</th>
    <th>Telefono</th>
    <th>stato</th>
    </tr>
    EOF;

    // query che recupera i dati dal db
    $query = mysql_query("SELECT * FROM lista ORDER BY nome ASC");

    while($var = mysql_fetch_assoc($query))
    {

    // visualizzo i dati estratti 
    
        if ($var['stato']=='evaso') { 
          echo '<tr style="background-color: yellow;">'; 
           } else { 
            echo '<tr>'; 
           } 
            echo '<td>'.$var['nome'].'</td> 
            <td>'.$var['cognome'].'</td> 
            <td>'.$var['telefono'].'</td> 
            <td>'.$var['stato'].'</td> 
        </tr>';
    

    }

    // chiudi la tabella
    echo <<<EOF
    </table>
    EOF;

    // chiude la connessione
    mysql_close($conn) or die(mysql_error());
    ?>
    [/php]


  • User Attivo

    edit: ho riscritto tutto togliendo quel EOF 😄 e adesso funziona, ora pero vorrei metter un altro colore, per il respinto il respinto,

    [PHP]<?php
    // mi connetto al database
    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('test', $conn) or die(mysql_error());

    $query="SELECT nome,cognome,telefono,stato FROM lista";
    $res = mysql_query($query);
    if ($res && mysql_num_rows($res) > 0){

    ?>
    <table>
    <tr>
    <td>Nome</td>
    <td>Cognome</td>
    <td>Telefono</td>
    <td>Stato</td>
    </tr>
    <?php

    while($var=mysql_fetch_assoc($res)){
    
    
    
    if ($var['stato']=='evaso') { 
          echo '<tr style="background-color: yellow;">'; 
           } else { 
            echo '<tr>'; 
           } 
            echo '<td>'.$var['nome'].'</td> 
            <td>'.$var['cognome'].'</td> 
            <td>'.$var['telefono'].'</td> 
            <td>'.$var['stato'].'</td> 
        </tr>';
    

    }
    }
    ?>
    </table>[/PHP]


  • User Attivo

    Che errore?
    E qual'è la linea 8?


  • User Attivo

    no adesso funziona correttamente, ora pero vorrei aggiungere un secondo colore per respinta.

    PS: la linea 8 corrispondeva a EOF 😄


  • User Attivo

    @Bivio said:

    ora pero vorrei aggiungere un secondo colore per respinta.

    [php]
    if ($var['stato']=='evaso') {
    echo '<tr style="background-color: yellow;">';
    } else {
    echo '<tr>';
    }
    [/php]

    vuol dire:

    SE il campo 'stato' contiene 'evaso'
    SCRIVI la riga con stile sfondo giallo
    ALTRIMENTI
    SCRIVI la riga senza stile

    ...

    quindi? :dull:


  • User Attivo

    Si mi riferivo a un secondo colore per lo stato respinto:

    SE il campo 'stato' contiene 'evaso'
    SCRIVI la riga con stile sfondo giallo
    SE il campo 'stato' contiene 'respinta'
    SCRIVI la riga con stile sfondo rossa
    ALTRIMENTI
    SCRIVI la riga senza stile

    Il problema che non riesco a concatenare entrambe le condizione, cioè utilizzando if viene verificata una delle due condizioni, mentre io vorrei che se entrambe le condizioni sono vere deve essere assegnato il colore di sfondo, che sara giallo per evaso, rosso per respinto.

    PS: grazie mille per l'aiuto ero da tempo che cercavo invano 😄


  • User Attivo

    Ma... 'stato' deve contenere solo 'evaso' o 'respinto' o anche un altro valore?


  • User Attivo

    Allora il campo stato conterrà i seguenti valori:

    Vuoto: lo stile della riga non cambia
    Respinto: Lo stile della riga diventa rosso
    Evaso: Lo stile della riga diventa verde


  • User Attivo

    Oh... allora è molto semplice...

    if (condizione1) {
    codice da eseguire se condizione1 è vera
    }
    elseif (condizione2) {
    codice da eseguire se condizione1 è falsa e la condizione2 è vera
    }
    else
    {
    codice da eseguire se tutte le condizioni precedenti sono false
    }

    Metti in pratica! :wink3:


  • User Attivo

    ok ora prova con piu calma, però gia avevo fatto una prova, in pratica con questo schema mi verifica una sola condizione, cioè:

    if (evasa) {
    colora la riga verde
    }
    elseif (respinta) {
    colora la riga rossa}
    else
    {
    lo stile della riga rimana invariato
    }

    Ma in questo modo nella stessa tabella non posso avere sia le righe verdi che rosse, giusto o sbaglio io qualcosa?

    Devo comunque fare qualche prova, magari mi sbaglio 😄


  • User Attivo

    @Bivio said:

    Ma in questo modo nella stessa tabella non posso avere sia le righe verdi che rosse
    Ma anche no!

    @Bivio said:

    Devo comunque fare qualche prova, magari mi sbaglio 😄
    Infatti... prova! :figo2:


  • User Attivo

    :giggle: avevi ragione qualcosa sbagliavo io...adesso funziona alla grande, grazie mille per l'aiuto a buon rendere 😉


  • User Attivo

    Figurati... :ciauz: