เคยเจอหลายกระทู้ในเว็บต่างๆ ถามว่า จะดึงข้อมูลออกจาก 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
หัดเขียนครับ says:
05/04/2554 at 05/04/2554
จะลองดูครับ