[PHP] [RISOLTO] Stampare classe css in base al risultato della query

  • Creatore Discussione Creatore Discussione elpirata
  • Data di inizio Data di inizio

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Buonasera a tutti,
avrei la necessità di cambiare il colore di una td in virtù del risultato di una query, mi spiego meglio:

Ho questa query che stampa a video la situazione di alcuni appuntamenti:

Codice:
$query = "SELECT *,DATE_FORMAT(data, '%d/%m/%Y') as data_it FROM appuntamenti WHERE data = CURRENT_DATE() ORDER BY tipo_pren ASC, ora ASC LIMIT $inizio, $per_pagina";

// ESEGUO LA QUERY
$cerca = mysql_query($query);

// STAMPO LA QUERY PER IL DEBUG
// echo $query;

echo "
    <center><table>
    <tr><th colspan='10'>RISULTATI RICERCA</th><th colspan='6'>OPERAZIONI</tr>
    <tr><th>Id<th>Cliente<th>Gestore<th>Veicolo<th>Data<th>Ora<th>Telefono<th>Note<th>Stato Prenotazione<th>Tipo Prenotazione<th>Nuova<th>Modifica<th>Elimina</tr>
    </center>";

// CICLO WHILE
while ($riga = mysql_fetch_assoc($cerca)){
echo "<tr><td>$riga[idappuntamento]<td>$riga[cliente]<td>$riga[gestore]<td>$riga[veicolo]<td>$riga[data_it]<td>$riga[ora]<td>$riga[telefono]<td>$riga[note]<td>$riga[stato_pren]<td>$riga[tipo_pren]</td><td><center><a href=\"insapp.php\"><img src= \"img/duplica_32_32.png\"></a></center></td><td><center><a href=\"mapp.php?idappuntamento=$riga[idappuntamento]\"><img src= \"img/modifica_32_32.png\"></a></center></td><td><center><a href=\"delapp.php?idappuntamento=$riga[idappuntamento]\" onclick=\"return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center></td></tr>";
}

echo "</table>";

Vorrei cambiare il colore di sfondo della <td>$riga[stato_pren] in virtù di quello che c'è scritto al suo interno, ad esempio:

Se nella cella è scritto "Attesa accettazione" applica all <td>$riga[stato_pren] la classe <td class = \"yellow\"
se è scritto "Terminato" applica la classe <td class = \"green\"
non so come implementare il codice, mi dareste una mano ?

o_O
 
Ciao,
semplicemente controlli il valore contenuto in quella riga e stampi secondo i criteri da te scelti.

Personalmente, ho preferito snellire il codice, creando una variabile $class che assume diverso valore a seconda del contenuto di $riga['stato_pren'] e, successivamanente, assegnare tale variabile all'attributo html class.

PHP:
<?php
// Se nella cella è scritto "Attesa accettazione" applica all <td>$riga[stato_pren] la classe <td class = \"yellow\"
// se è scritto "Terminato" applica la classe <td class = \"green\"

$class = "";
while ($riga = mysql_fetch_assoc($cerca)) {

    // $class assume valore condizionatamente al valore dello stato prenotazione
    if($riga['stato_pren'] == 'Attesa accettazione') {
        $class = "yellow";
    } elseif ($riga['stato_pren'] == 'Terminato') {
        $class = "green";
    }

    //stampo le celle assegnando class = $class alla cella stato prenotazione
    echo "<tr>
              <td>$riga['idappuntamento']
              <td>$riga['cliente']
              <td>$riga['gestore']
              <td>$riga['veicolo']
              <td>$riga['data_it']
              <td>$riga['ora']
              <td>$riga['telefono']
              <td>$riga['note']

              <td class='$class'>$riga['stato_pren']

              <td>$riga['tipo_pren']</td>
              <td>
                  <center><a href=\"insapp.php\"><img src= \"img/duplica_32_32.png\"></a></center>
              </td>
              <td>
                  <center><a href=\"mapp.php?idappuntamento=$riga['idappuntamento']\"><img src= \"img/modifica_32_32.png\"></a></center>
              </td>
              <td>
                   <center><a href=\"delapp.php?idappuntamento=$riga['idappuntamento']\" onclick=\"return confirm('Cancellare definitivamente?')\"><img src=\"imgelimina_32_32.png\"></a></center>
              </td>
        </tr>";
}

?>
 
Codice:
<?php

// INCLUDO IL FILE PER LA CONNESSIONE AL DATABASE GESTIONE OFFICINA 2
include ("connessione.php");

if (trim($_POST['cliente']) == '' && trim($_POST['gestore']) == '' && trim($_POST['data']) == '' && trim($_POST['idata']) == '' && trim($_POST['fdata']) == '' && trim($_POST['ora']) == '' && trim($_POST['stato_pren']) == '' && trim($_POST['tipoprenotazione']) == '' && trim($_POST['telefono']) == ''&& trim($_POST['note']) == '')
{
    //REINDIRIZZO L'UTENTE AL MESSAGGIO DI ERRORE ATTENZIONE COMPILA ALMENO UN CAMPO
    echo "<center><div id=\"ricercanulla\">Attenzione non hai inserito nessun valore di ricerca</div></center></br><center><div id=\"torna\"><a href=\"ricapp.php\">Torna alla ricerca</a></div></center></br></br>";
}

else
  
{
  
  
$cliente = $_POST['cliente'];
$gestore = $_POST['gestore'];
$data = $_POST['data'];
$idata = $_POST['idata'];
$fdata = $_POST['fdata'];
$ora = $_POST['ora'];
$stato_pren = $_POST['stato_pren'];
$tipoprenotazione = $_POST['tipoprenotazione'];
$telefono = $_POST['telefono'];
$note = $_POST['note'];


$query = "SELECT *, DATE_FORMAT(appuntamenti.data,'%d/%m/%Y') as data_it FROM appuntamenti WHERE 1=1";


if (!empty($cliente)) {
    $query .= " AND `cliente` LIKE '%$cliente%'";
}

if (!empty($gestore)) {
    $query .= " AND `gestore` LIKE '%$gestore%'";
}

if (!empty($data)) {
    $query .= " AND `data` = STR_TO_DATE('$data', '%d/%m/%Y') ";
}

if (!empty($ora)) {
    $query .= " AND `ora` = '$ora'";
}

if (!empty($stato_pren)) {
    $query .= " AND `stato_pren` = '$stato_pren'";
}

if (!empty($tipoprenotazione)) {
    $query .= " AND `stato_pren` = '$tipoprenotazione'";
}

if (!empty($telefono)) {
    $query .= " AND `telefono` LIKE '%$telefono%'";
}

if (!empty($note)) {
    $query .= " AND `note` LIKE '%$note%'";
}

if (!empty($idata)) {
    $query .= " AND `data` BETWEEN  STR_TO_DATE('$idata', '%d/%m/%Y') AND STR_TO_DATE('$fdata', '%d/%m/%Y')";
}

    $query .= " ORDER BY data ASC";
}


// echo $query;


// ESEGUO LA QUERY CHE HO POGGIATO IN VARIABILE DI NOME $QUERY
$cerca=mysql_query($query);

// STAMPO LA QUERY PER IL DEBUG
// echo $query;

echo "
    <center><table>
    <tr><th colspan='10'>RISULTATI RICERCA</th><th colspan='6'>OPERAZIONI</tr>
    <tr><th>Id<th>Cliente<th>Gestore<th>Veicolo<th>Data<th>Ora<th>Telefono<th>Note<th>Stato Prenotazione<th>Tipo Prenotazione<th>Nuova<th>Modifica<th>Elimina</tr>
    </center>";


// ESEGUO UN CICLO WHILE

$class="";
while ($riga = mysql_fetch_assoc($cerca)){

    //$class assume valore condizionale
    if($riga['stato_pren'] == 'Attesa Accettazione'){
        $class = "yellow";
    } elseif ($riga['stato_pren'] == 'Lavoro Terminato'){
        $class = "green";
    }
  
    //stampo le celle assegnando la variabile class alla cella stato prenotazione
  
    echo "<tr>                                                         <------qua errore
            <td>$riga['idappuntamento']
            <td>$riga['cliente']
            <td>$riga['gestore']
            <td>$riga['veicolo']
            <td>$riga['data_it']
            <td>$riga['ora']
            <td>$riga['telefono']
            <td>$riga['note']
            <td class='$class'>$riga['stato_pren']
            <td>$riga['tipo_pren']</td>
            <td>
            <center><a href=\"insapp.php\"><img src=\"img/duplica_32_32.png\"></a></center>
            </td>
            <td>
            <center><a href=\"mapp.php?idappuntamento=$riga['idappuntamento']\"><img src=\"img/modifica_32_32.png\"></a></center>
            </td>
            <td>
            <center><a href=\"delapp.php?idappuntamento=$riga['idappuntamento']\" onclick=\return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center>
            </td>
        </tr>";
}

echo "</table>";

// CHIUDO LA CONNESSIONE AL DATABASE MYSQL
mysql_close();

?>

Ciao Adeknite,
anzitutto grazie mille per la risposta, ho modificato tutto lo script come da te suggerito:
ma ottengo errore dove segnalato, ossia all'apertura dell'echo :oops:

Codice:
PHP Parse error:  syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
 
Prova cosi:

PHP:
echo "<tr>                                                  
            <td>$riga['idappuntamento']."
            <td>".$riga['cliente']."
            <td>".$riga['gestore']."
            <td>".$riga['veicolo']."
            <td>".$riga['data_it']."
            <td>".$riga['ora']."
            <td>".$riga['telefono']."
            <td>".$riga['note']."
            <td class='$class'>".$riga['stato_pren']."
            <td>".$riga['tipo_pren']."</td>
            <td>
            <center><a href=\"insapp.php\"><img src=\"img/duplica_32_32.png\"></a></center>
            </td>
            <td>
            <center><a href=\"mapp.php?idappuntamento=".$riga['idappuntamento']."\"><img src=\"img/modifica_32_32.png\"></a></center>
            </td>
            <td>
            <center><a href=\"delapp.php?idappuntamento=".$riga['idappuntamento']."\" onclick=\return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center>
            </td>
        </tr>";
 
upload_2016-8-9_11-12-59.png


Sempre errore ...
 
Ciao scusami ho sbagliato a inserirti il codice
PHP:
echo "<tr> 
 <td>".$riga['idappuntamento']."
 <td>".$riga['cliente']."
 <td>".$riga['gestore']."
 <td>".$riga['veicolo']."
 <td>".$riga['data_it']."
 <td>".$riga['ora']."
 <td>".$riga['telefono']."
 <td>".$riga['note']."
 <td class='$class'>".$riga['stato_pren']."
 <td>".$riga['tipo_pren']."</td>
 <td>
 <center><a href=\"insapp.php\"><img src=\"img/duplica_32_32.png\"></a></center>
 </td>
 <td>
 <center><a href=\"mapp.php?idappuntamento=".$riga['idappuntamento']."\"><img src=\"img/modifica_32_32.png\"></a></center>
 </td>
 <td>
 <center><a href=\"delapp.php?idappuntamento=".$riga['idappuntamento']."\" onclick=\return confirm('Cancellare definitivamente?')\"><img src=\"img/elimina_32_32.png\"></a></center>
 </td>
 </tr>";
 

Discussioni simili