heavyaris Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 παιδιά, δημιουργώ έναν πίνακα που τραβάει δεδομένα απο βάση, θα ήθελα όμως το χρώμα της κάθε γραμμής να είναι διαφορέτικο (2 χρώματα να εναλλάσονται στις γραμμές), τι πρέπει να προσθέσω στην > while ( $row = mysql_fetch_array ( $result ) ) {....} ευχαριστώ.
macabre_sunsets Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 > $k = 0; while ( $row = mysql_fetch_array ( $result ) ) { echo '<tr class="row$k">'; ... echo '</tr>'; $k = 1 - $k; } και στο css σου ορίζεις τα row0 και row1 να έχουν background το χρώμα που θέλεις;
nzeppos Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 Χμμμ, φαντάζομαι υπάρχουν πολλές λύσεις, λιγότερο ή περισσότερο μπακάλικες. Είχα δει κάποτε μια έξυπνη τεχνική στο OSCommerce, αλλά δεν την θυμάμαι ρε γμτ... Μια πρόχειρη ιδέα θα ήταν να μπει ένας counter που να ξεκινάει από το 1, να αυξάνεται σε κάθε εκτέλεση της while() και σε κάθε πέρασμα να τσεκάρει αν είναι άρτιος ή περιττός. Πχ. με ένα MOD του στιλ "$counter % 2". Αν είναι μηδέν τότε ο αριθμός είναι ακέραιος, αλλιώς είναι περιττός. Ανάλογα το αποτέλεσμα θα αλλάζει και η μεταβλητή που ορίζει το χρώμα του κελιού. Πχ. > $counter=1; while(...) { ($counter % 2) ? $color="red" : $color="blue"; // υπόλοιπος κώδικας [...] $counter++; } edit: με πρόλαβε ο macabre_sunsets νομίζω η λύση του είναι περισσότερο optimized από τη δική μου, γιατί γλυτώνει τον έλεγχο του IF.
heavyaris Δημοσ. 13 Ιανουαρίου 2011 Μέλος Δημοσ. 13 Ιανουαρίου 2011 δηλαδή στην περίπτωση μου έχω: > 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 πως μπορώ να το προσαρμόσω;
Uberalles_gr Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 > $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
nzeppos Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 Σύμφωνα με τη λύση του macabre_sunsets, αντί για <tr bgcolor=...> αρκεί ένα <tr class="row$k">. Και φυσικά οι αντίστοιχες δηλώσεις για τα $k και τα classes row0 και row1. edit: όλο με προλαβαίνουν σήμερα
macabre_sunsets Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 > echo "<tr class=\"row$k\">"; αντί για > echo "<tr class="row$k">"; Επίσης δοκίμασε να χρησιμοποιείς >echo '...'; αντί για >echo "..."; Θα γλιτώσεις κάμποσα «\"».
nzeppos Δημοσ. 13 Ιανουαρίου 2011 Δημοσ. 13 Ιανουαρίου 2011 Μπράβο, κι εγώ είμαι της λογική των: >echo '...'; Τα double quotes ποτέ δεν τα χώνεψα στην php. Μάλλον φταίει που έτσι έμαθα.
heavyaris Δημοσ. 13 Ιανουαρίου 2011 Μέλος Δημοσ. 13 Ιανουαρίου 2011 ευχαριστώ πολύ. σχετικά με τα "" όντως έχω τρελλαθεί να βάζω \" ασταμάτητα!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.