Προς το περιεχόμενο

πινακας και διαφορετικά χρώματα γραμμών - php


heavyaris

Προτεινόμενες αναρτήσεις

Δημοσ.

παιδιά, δημιουργώ έναν πίνακα που τραβάει δεδομένα απο βάση, θα ήθελα όμως το χρώμα της κάθε γραμμής να είναι διαφορέτικο (2 χρώματα να εναλλάσονται στις γραμμές), τι πρέπει να προσθέσω στην

>
while ( $row = mysql_fetch_array ( $result ) )
{....}

ευχαριστώ.

Δημοσ.

Χμμμ, φαντάζομαι υπάρχουν πολλές λύσεις, λιγότερο ή περισσότερο μπακάλικες.

 

Είχα δει κάποτε μια έξυπνη τεχνική στο OSCommerce, αλλά δεν την θυμάμαι ρε γμτ...

 

Μια πρόχειρη ιδέα θα ήταν να μπει ένας counter που να ξεκινάει από το 1, να αυξάνεται σε κάθε εκτέλεση της while() και σε κάθε πέρασμα να τσεκάρει αν είναι άρτιος ή περιττός. Πχ. με ένα MOD του στιλ "$counter % 2". Αν είναι μηδέν τότε ο αριθμός είναι ακέραιος, αλλιώς είναι περιττός. Ανάλογα το αποτέλεσμα θα αλλάζει και η μεταβλητή που ορίζει το χρώμα του κελιού.

 

Πχ.

>
$counter=1;
while(...) {
($counter % 2) ? $color="red" : $color="blue";
// υπόλοιπος κώδικας    
[...]    
$counter++;
}

 

edit: με πρόλαβε ο macabre_sunsets ^_^ νομίζω η λύση του είναι περισσότερο optimized από τη δική μου, γιατί γλυτώνει τον έλεγχο του IF.

Δημοσ.

δηλαδή στην περίπτωση μου έχω:

>
while ( $row = mysql_fetch_array ( $result ) )
{
 echo     	"<tr bgcolor=\"#ffffff\" >";
 echo       	"<td ><div align=\"center\"class=\"style1 style2\">".$date_for_show_echo."</div> </td>";
 echo       	"<td  ><div align=\"center\"class=\"style1 style2\"><a class=\"black\" href=\"bet.time.stories.article.read.php?id=".$row['id']."\">".$row['title']."</div></td> ";
 echo     	"</tr><!--  telos deuterhs grammhs-->";
}//while

πως μπορώ να το προσαρμόσω;

Δημοσ.

>
$k = 0;
while ( $row = mysql_fetch_array ( $result ) )
{
 echo     	"<tr class="row$k">";
 echo       	"<td ><div align=\"center\"class=\"style1 style2\">".$date_for_show_echo."</div> </td>";
 echo       	"<td  ><div align=\"center\"class=\"style1 style2\"><a class=\"black\" href=\"bet.time.stories.article.read.php?id=".$row['id']."\">".$row['title']."</div></td> ";
 echo     	"</tr><!--  telos deuterhs grammhs-->";

 $k = 1 - $k;
}//while

Σύμφωνα με αυτό που έγραψε ο @macabre_sunsets

Δημοσ.

Σύμφωνα με τη λύση του macabre_sunsets, αντί για <tr bgcolor=...> αρκεί ένα <tr class="row$k">.

 

Και φυσικά οι αντίστοιχες δηλώσεις για τα $k και τα classes row0 και row1.

 

edit: όλο με προλαβαίνουν σήμερα :P

Δημοσ.

Μπράβο, κι εγώ είμαι της λογική των:

 

>echo '...';

 

Τα double quotes ποτέ δεν τα χώνεψα στην php. Μάλλον φταίει που έτσι έμαθα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...