- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Modifica colore riga mysql
-
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]
-
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:
-
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]
-
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>
<?phpwhile($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]
-
Che errore?
E qual'è la linea 8?
-
no adesso funziona correttamente, ora pero vorrei aggiungere un secondo colore per respinta.
PS: la linea 8 corrispondeva a EOF
-
@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?
-
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 stileIl 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
-
Ma... 'stato' deve contenere solo 'evaso' o 'respinto' o anche un altro valore?
-
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
-
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!
-
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
-
@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!
-
avevi ragione qualcosa sbagliavo io...adesso funziona alla grande, grazie mille per l'aiuto a buon rendere
-
Figurati...