- Home
- Categorie
- Coding e Sistemistica
- PHP
- Alternare il colore di sfondo delle righe di una tabella PHP
-
Alternare il colore di sfondo delle righe di una tabella PHP
Ciao a tutti,
ho la necessità di prelevare dei dati da un db MySql e fare in modo che le righe della tabella siano alternate di due colori.
Ho trovato diversi script ma non riesco a farlo funzionare.
Vi riporto il codice:
[php]<?php
$counter = 1;
$classifica_marcatori = mysql_query(" SELECT * FROM
giocatori_b1_2011_2012
ORDER BYpunti_fatti_totale
DESC ");while($row=mysql_fetch_array($classifica_marcatori))
{($counter % 2 == 0) ? $class = "grigio" : $class = "giallo";
echo '<div id="classifica_marcatori_container">';
echo '<div id="riga" class="$class">';
echo '<div id="colonna">';
echo $row[giocatore];
echo '</div>';
echo '<div id="colonna">';
echo $row[squadra];
echo '</div>';
echo '<div id="colonna">';
echo $row[punti_fatti_totale];
echo '</div>';
echo '</div>';
echo '</div>';$counter++;
}[/php]
La tabella viene riportata correttamente ma non riesco a fare in modo che le righe compaiano di colori alternati.
Ovviamente nel foglio di stile ho messo le classi per i colori:
.giallo { background-color: #FFFF00; } .grigio { background-color: #CCCCCC; }
Mi potete aiutare per favore????
Grazie mille
-
Ciao ivan_83_to,
prova ad inserire lo script così:
[php] <?php$counter = 1;
$classifica_marcatori = mysql_query(" SELECT * FROM
giocatori_b1_2011_2012
ORDER BYpunti_fatti_totale
DESC ");while($row=mysql_fetch_array($classifica_marcatori))
{($counter % 2 == 0) ? $class = "grigio" : $class = "giallo";
echo '<div id="classifica_marcatori_container">';
echo '<div id="riga" class="'.$class.'">';
echo '<div id="colonna">';
echo $row[giocatore];
echo '</div>';
echo '<div id="colonna">';
echo $row[squadra];
echo '</div>';
echo '<div id="colonna">';
echo $row[punti_fatti_totale];
echo '</div>';
echo '</div>';
echo '</div>';$counter++;
}[/php]
-
Ciao, funziona!!!
Posso chiederti la modifica che hai fatto al mio codice ( class="'.$class.'" ) in cosa consiste? Qual è la funzione di: "'. ?
Grazie mille comunque per l'aiuto.
Ivan
-
Certo!
L'escape (**\ **= backslash) anteposto alle virgolette/apici serve a far comprendere all'interprete di PHP che quella virgoletta/apice va interpretata esattamente per quello che è e non come un marcatore di stringa.
Per portarti un esempio con il tuo script:
[php]<?php
echo "<div id="riga" class="nomeclasse">";
?>[/php]Potresti scrivere la riga anche così, ovvero utilizzando le virgolette come marcatore di stringa invece degli apici, ma avendo all'interno della stringa altre virgolette bisogna utilizzare la tecnica dell'*escape *per dirgli "Questa è semplicemente una virgoletta che fa parte di una stringa e non il marcatore di fine stringa".
Ovviamente la tecnica dell'escape va utilizzata solo se utilizzi come marcatore di stringa lo stesso carattere contenuto nella stringa, ovvero se come marcatore di stringa utilizzi gli apici dovrai escapare tutti gli apici contenuti nella stringa, se utilizzi le virgolette dovrai escapare tutte le virgolette contenute nella stringa. Nel tuo caso, avendo utilizzato gli apici come marcatore di stringa, non c'è nulla da escapare non essendoci altri apici all'interno della stringa.Per inserire invece il valore di una variabile PHP insieme ad una stringa si utilizza il sistema della concatenazione.
Se tu dovessi visualizzare due valori di variabili scriveresti:
[php]<?php
$var1="Ciao";
$var2="Ivan";
echo $var1 . $var2; // stamperebbe a video CiaoIvan
?>[/php]Ma così verrebbe tutto attaccato, per spaziarlo bisogna inserire una "stringa" che, in questo caso, sarà un semplice spazio:
[php]<?php
$var1="Ciao";
$var2="Ivan";
echo $var1 . " " . $var2; // stamperebbe a video Ciao Ivan
echo $var1 . ' ' . $var2; // stamperebbe a video Ciao Ivan
?>[/php]Come vedi ho utilizzato sia le virgolette che gli apici dato che hanno lo stesso effetto.Nel tuo caso non hai fatto altro che concatenare 3 stringhe:
Stringa 1 = '<div id="riga" class="'
Stringa 2 = $class
Stringa 3 = '">'
Ottenendo quindi:
[php]<?php
echo '<div id="riga" class="' . $class . '">';
?>[/php]Spero di essere stato chiaro e non troppo tecnico.
-
Chiarissimo....cosa nuova imparata!!!
Ti ringrazio ancora.
Ivan
-
Di nulla.
[URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile
-
Ciao,
ne approfitto per chiederti ancora un aiuto.
Se da questo codice volessi stampare alcune righe in grassetto, come posso fare?
Per fare un esempio pratico: da questo campo $row[giocatore] voglio fare un controllo e dirgli: se compare il valore "Ivan", stampa la riga in grassetto.
Come posso fare?
Grazie mille ancora...
-
Controlli il valore di $row['giocatore'] e, tramite il sistema della concatenazione, includi il valore di ogni cella tra i tag <strong>..</strong>
[php]<?php
if ($row['giocatore']=="Ivan")
{
$row['giocatore']="<strong>".$row['giocatore']."</strong>";
$row['qualcosaltro']="<strong>".$row['qualcosaltro']."</strong>";
}
?>[/php]
-
Fantastico, funziona alla grande!!
Ancora grazie mille!!!
Ciao.
Ivan
-
Bene così, buon lavoro.
[URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile