เคยเจอหลายกระทู้ในเว็บต่างๆ ถามว่า จะดึงข้อมูลออกจาก MySQL แล้วแสดงแถวสลับสี ได้อย่างไร มาดูกัน

หลักการทำก็ง่ายๆมากครับ โดยปกติเวลาแสดงแถวข้อมูลเราต้องใช้คำสั่ง Loop อยู่แล้ว  เราก็แค่ ดูว่ารอบนี้เป็นรอบที่เท่าไร แล้วเอารอบที่ได้นี่แหละ ไปหาร 2 เอาเศษ (%) ซึ่งผลลัพธ์ ที่ออกมาก็จะเป็น 0 กับ 1 เท่านั้น หารลงตัว กับไม่ลงตัว

ถ้าหากใครเอาตัวเลข หาร 2 แล้วเหลือเศษ 3 บอกผมด้วย  :)  ดูโค้ดนะครับ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
// 1. 
 
$hostname_connection = "localhost" ;
$database_connection = "inventory" ;
$username_connection = "root" ;
$password_connection = "" ;
 
 
$connection = mysql_pconnect($hostname_connection, $username_connection, $password_connection) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_query("SET NAMES UTF8") ;
mysql_select_db($database_connection, $connection);
$query_rs_branch = "SELECT * FROM tbl_branch ORDER BY branch_name ASC" ;
$rs_branch = mysql_query($query_rs_branch, $connection) or die(mysql_error());
$row_rs_branch = mysql_fetch_assoc($rs_branch);
$totalRows_rs_branch = mysql_num_rows($rs_branch);
 
 
?>
<!--// 2. -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> การสลับสีแถวในตาราง</title>
</head>
<body>
    <table border="0" cellpadding="2" cellspacing="1" >
    <tr>
        <td>รหัส</td>
        <td>สาขา</td>
    </tr>
 
    <!--// 3. -->
    <?php
 
    do {
     // จุดไคลแม็กอยู่ตรงนี้ เอาจำนวนรอบในการลูปหารเอาเศษ ด้วย 2 
 
    $iLoop++;
    $bgcolor = ( ($iLoop%2)==0 )? "#F1F1F1" : "#FFFFFF" ;
 
    ?>
    <tr bgcolor="<?php echo $bgcolor ;?>">
        <td><?php echo $row_rs_branch['branch_id'];?></td>
        <td><?php echo $row_rs_branch['branch_name'];?></td>
    </tr>
 
    <!--// 4. -->
    <?php } while ($row_rs_branch = mysql_fetch_assoc($rs_branch));?>
 
    <!--// 5. -->
</table>
</body>
</html>
<?php mysql_free_result($rs_branch);?>

 

1. ส่วนนี้เป็นการเชื่อมต่อฐานข้อมูล ธรรมด้า ธรรมดา    ไม่ต้องสนใจ

2. หัว html ก็ไม่ต้องสนใจ

3. ตรงนี้แหละครับ Loop แสดงผลออกมาทีละแถว 
    $iLoop++;   // เก็บจำนวนรอบ ว่ากี่รอบแล้วที่แสดงไปน่ะ

    $bgcolor = ( ($iLoop%2)==0 )? "#F1F1F1" : "#FFFFFF" ;  // หารถ้าได้เศษ 0 กำหนดเป็นสีเท่า 1 เป็นสีขาว

    <tr bgcolor="<?php echo $bgcolor ;?>"> // หลังจากได้สีแล้วก็เอาไปกำหนดให้กับ bgcolor ของแถว

4. ไม่มีไร จบช่วง Loop

5. ก็ไม่มีไร แค่ปิดท้าย html