– Tại file ‘menu_ngang.php’ thì bạn thêm đoạn code sau :
<?php
$tv=”select * from menu_ngang order by id”;
$tv_1=mysql_query($tv);
echo “<div class=’menu_ngang’ >”;
while($tv_2=mysql_fetch_array($tv_1))
{
echo “<a href=”>”;
echo $tv_2[‘ten’];
echo “</a>”;
}
echo “</div>”;
?>
– Sau khi thêm code , bạn nhận được kết quả như sau :
– Mình giải thích đoạn code trên như sau :
+ Cách viết ‘$tv’ là cách viết tên biến trong php , như vậy $tv=”select * from menu_ngang order by id”; là khai báo biết tv có nội dung là select * from menu_ngang order by id (Lưu ý ở đây biến tv sẽ có giá trị là 1 chuỗi ký tự)
+ Câu lệnh mysql_query có nhiệm vụ gửi 1 truy vấn đến cơ sở dữ liệu mysql , như vậy mysql_query($tv) là gửi đến cơ sở dữ liệu mysql 1 câu truy vấn có nội dung là select * from menu_ngang order by id ( mysql_query($tv) cũng có thể hiểu là gủi đến cơ sở dữ liệu mysql một biến có tên là tv kèm theo nội dung của biến tv )
+ Như vậy có thể hiểu chuỗi select * from menu_ngang order by id là 1 câu lệnh mysql.Câu lệnh này hiểu là ‘lựa chọn tất cả các cột trong bảng menu_ngang và sắp xếp theo thứ tự số tăng dần của cột id’
+ Câu lệnh trên thực ra là câu lệnh select của mysql.Bạn có thể hiểu câu lệnh select này như sau
select (tên cột hoặc tên trường) from (tên bảng) + Một hoặc các lệnh khác
+ Ở đây ‘tên cột hoặc tên trường’ chính là dấu ‘*’ , nghĩa là lựa chọn tất cả các cột.Còn phần tên bảng thì là bảng ‘menu_ngang’.Kế tiếp ‘Một hoặc các lệnh khác’ thì là câu lệnh order by , câu lệnh này có nghĩa là ‘sắp xếp’ các dữ liệu trong bảng ‘menu_ngang’
+ Câu lệnh order by có thể hiểu là order by (tên cột hoặc tên trường) + (kiểu sắp xếp)
+ Như vậy thì ‘tên cột hoặc tên trường’ trong câu lệnh order by là cột ‘id’.Còn ‘kiểu sắp xếp’ thì để rỗng , khi mà để rỗng và cả cột ‘sắp xếp’ là cột số (trường hợp này là cột ‘id’) thì có nghĩa là sắp xếp theo thứ tự tăng dần
+ Tóm lại , câu lệnh select * from menu_ngang order by id hiểu là ‘lựa chọn tất cả các cột trong bảng menu_ngang và sắp xếp theo thứ tự số tăng dần của cột id’
+ Viết $tv_1=mysql_query($tv); nghĩa là gán biến tv_1 có giá trị là ‘cái bảng menu_ngang được sắp xếp theo id số tăng dần’
+ Tiếp theo là câu lệnh echo trong php.Câu lệnh echo dùng để xuất dữ liệu html,js,css (hoặc đơn thuần chỉ là nội dung chuỗi) ra trình duyệt web.
+ echo “<div class=’menu_ngang’ >”; là tạo div có class là menu_ngang.Mục đích tạo cái div này thì bạn có thể xem lại phần 2 của tài liệu này
+ Câu lệnh mysql_fetch_array có thể hiểu là dùng để lấy từng dòng dữ liệu trong ‘bảng mysql’
+ Vì bảng dữ liệu có nhiều dòng nên phải dùng vòng lặp while (để lấy hết dữ liệu)
+ Viết là while($tv_2=mysql_fetch_array($tv_1)) thì có nghĩa là lấy dữ liệu từng dòng từ biến ‘tv_1’ (mà khi nãy đã gán biến tv_1 có nội dung là ‘menu_ngang’ ) cho đến khi hết dòng dữ liệu.
+ Có thể hiểu là khi mysql_fetch_array lấy dữ liệu tới dòng cuối cùng thì lúc này biến ‘tv_2’ sẽ có giá trị là false (tức là giá trị ‘sai’) nên vòng lặp while sẽ dừng lại
+ Ở trong vòng lặp while thì xuất liên kết ra : echo “<a href=”>”;.Ở đây vòng lặp while sẽ chạy hết các dòng dữ liệu trong bảng ‘menu_ngang’ , thế nên vòng lặp while có số lần lặp lại bằng với số dòng dữ liệu của bảng ‘menu_ngang’
+ Khi vòng lặp while đang chạy thì bạn sẽ thấy có gán biến $tv_2=mysql_fetch_array($tv_1).Như vậy biến ‘tv_2’ sẽ có giá trị là 1 dòng dữ liệu của bảng ‘menu_ngang’ , cứ mỗi một lần lặp lại vòng lặp while thì biến ‘tv_2’ sẽ đổi giá trị một lần (giá trị sẽ được đổi là dữ liệu của dòng tiếp theo trong bảng ‘menu_ngang’)
+ Lưu ý rằng giá trị của biến ‘tv_2’ sẽ là 1 mảng.Để truy xuất giá trị của mảng thì truy xuất thế này :
$tv_2[‘tên cột hoặc trường’] + Như vậy khi viết echo $tv_2[‘ten’]; chính là xuất dữ liệu cột ‘ten’ trong bảng ‘menu_ngang’ và cứ mỗi lần vòng lặp while lặp lại thì giá trị cột ‘ten’ sẽ thay đổi (trở thành dữ liệu cột ‘ten’ của dòng kế tiếp)
+ Tạm thời trong phần này thì để liên kết là rỗng ( href=” )
+ Kết thúc phần này thì đã xuất được dữ liệu từ bảng ‘menu_ngang’ trong mysql vào web