Hiệp Hòa - Quê Hương Tôi - Chung tay vì một thế hệ trẻ
Chào mừng các bạn đến với diễn đàn của lớp HiepHoa98.tk.
Hãy đăng nhập hoặc đăng ký (nếu chưa là thành viên), để cùng chung tay xây dựng cho diễn đàn ngày càng phát triển mạnh mẽ.
Xứng danh tuổi trẻ Hiệp Hòa.
Chúc các bạn vui vẻ khi tham gia vào diễn đàn!
Hiệp Hòa - Quê Hương Tôi - Chung tay vì một thế hệ trẻ
Chào mừng các bạn đến với diễn đàn của lớp HiepHoa98.tk.
Hãy đăng nhập hoặc đăng ký (nếu chưa là thành viên), để cùng chung tay xây dựng cho diễn đàn ngày càng phát triển mạnh mẽ.
Xứng danh tuổi trẻ Hiệp Hòa.
Chúc các bạn vui vẻ khi tham gia vào diễn đàn!
Hiệp Hòa - Quê Hương Tôi - Chung tay vì một thế hệ trẻ
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Hiệp Hòa - Quê Hương Tôi - Chung tay vì một thế hệ trẻ

Nơi tuổi trẻ Hiệp Hòa biến những thứ không thể thành có thể ,biến giác mơ thành sự thật
 
Trang ChínhLatest imagesTìm kiếmĐăng kýĐăng Nhập
Liên lạc hỗ trợ
Latest topics
» Du học 3 trường Đại học hàng đầu ở Canada năm 2013-2014
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Sat Jul 27, 2019 12:36 pm

» Du học Canada ĐH Simon Fraser, ĐH Manitoba, Đại học Brock
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Thu May 23, 2013 12:47 pm

» Du học Úc 2013-2014 ngành thiết kế thời trang, đồ họa, thiết kế phim ảnh
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Thu May 16, 2013 8:16 pm

» Du học Úc 2013-2014 ngành khoa học, Hóa học, Vật lý, Toán, Tâm lý học
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Mon May 13, 2013 8:25 pm

» Du học Úc 2013-2014 ngành Luật thương mại, Luật kinh doanh quốc tế
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Fri May 10, 2013 9:56 pm

» ĐH Curtin Sydney, Úc mời tham dự học bổng và chương trình du học
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Tue May 07, 2013 11:37 pm

» Hội thảo Du học Úc tháng 5-2013: du học Đại học Curtin Sydney
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Tue May 07, 2013 9:06 pm

» Du học Úc 2013-2014 ngành Quản lý giáo dục, Giảng dạy, Sư phạm
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Sun May 05, 2013 10:06 pm

» Du học Úc ngành Du lịch, Khách sạn, Quản lý Sự kiện, Thể thao 2013-2014
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Fri May 03, 2013 10:21 pm

» Du học Úc 2013-2014 ngành Quản lý dự án, Xây dựng, Thiếtkế, Kiến trúc
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Mon Apr 29, 2013 10:01 pm

» Du học Úc 2013-2014 ngành Cơ khí , kĩ thuật, chế tạo máy
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Sat Apr 27, 2013 9:20 am

» Du học Úc 2013-2014 ngành kĩ thuật Điện, Điện tử, Vi điện tử
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Wed Apr 24, 2013 12:58 pm

» Du học Úc ngành Công nghệ Thông tin, Công nghệ Games 2013-2014
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Mon Apr 22, 2013 8:32 pm

» Đại học Curtin Sydney thông báo học bổng du học Úc 2013
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Sat Apr 20, 2013 3:26 pm

» Du học Úc: Học bổng du học thạc sĩ ở Úc 2013-2014
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Fri Apr 19, 2013 4:57 pm

» Du học Úc ngành Quản trị kinh doanh, Tài chính Ngân hàng 2013-2014
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Wed Apr 17, 2013 5:10 pm

» Du học Úc ngành Y học, Dược phẩm, Y sinh, Quản lý Y tế 2013-2014
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Mon Apr 15, 2013 10:07 pm

» Du học Úc 2013-2014 ngành Marketing, Kinh doanh quốc tế, Quan hệ quốc tế
Tự học lạp trình PHP I_icon_minitimeby huyenduhocvip Fri Apr 12, 2013 8:38 pm

Similar topics
Poll
Bạn thấy địa danh nào mà bạn cho là ý nghĩa nhất trong 7 địa danh dưới đây của HIỆP HÒA:
1. ĐÌNH LỖ HẠNH
Tự học lạp trình PHP Vote_lcap112%Tự học lạp trình PHP Vote_rcap1
 12% [ 12 ]
2. ĐỀN Y SƠN
Tự học lạp trình PHP Vote_lcap13%Tự học lạp trình PHP Vote_rcap1
 3% [ 3 ]
3. LĂNG DINH HƯƠNG
Tự học lạp trình PHP Vote_lcap19%Tự học lạp trình PHP Vote_rcap1
 9% [ 9 ]
4. LĂNG HỌ NGỌ
Tự học lạp trình PHP Vote_lcap12%Tự học lạp trình PHP Vote_rcap1
 2% [ 2 ]
5. LĂNG BẦU
Tự học lạp trình PHP Vote_lcap12%Tự học lạp trình PHP Vote_rcap1
 2% [ 2 ]
6. ĐÌNH VÂN XUYÊN
Tự học lạp trình PHP Vote_lcap17%Tự học lạp trình PHP Vote_rcap1
 7% [ 7 ]
7. TƯỢNG ĐÀI TRUYỀN THỐNG HIỆP HÒA
Tự học lạp trình PHP Vote_lcap165%Tự học lạp trình PHP Vote_rcap1
 65% [ 64 ]
Tổng số bầu chọn : 99
Top posters
phuongthao.info
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
hoavokhuyet
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
nhÓc.buỒn
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
Hell Of Life
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
zaizaips
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
DomG
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
Admin
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
thientruongkt07
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
Kông Cha
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
alexandermichello
Tự học lạp trình PHP Vote_lcap1Tự học lạp trình PHP Voting_bar1Tự học lạp trình PHP Vote_rcap1 
Chuyện tình yêu H98N
________________ Quảng cáo
Tự học lạp trình PHP Quang-cao2 ________________ ________________ Tự học lạp trình PHP Quang-cao-mua-ban ________________ ________________ QUẢNG CÁO:
0079002900
Playlist of hiephoa98.NET
THÔNG TIN H298.TK
DỰ BÁO THỜI TIẾT ________________
Hà Nội
Ha Noi

Cố Đô Huế
Co Do Hue

TP Hồ Chí Minh

Ho Chi Minh

TP Đà Nẵng
Da Nang


TP Bắc Giang
Bac Giang

__TIME & DAY__

 

 Tự học lạp trình PHP

Go down 
3 posters
Tác giảThông điệp
bogiavns
Ban Quản Trị
Ban Quản Trị
bogiavns


Tổng số bài gửi : 18
Thành tích : 33
Join date : 19/01/2010
Age : 44
Đến từ : Đại Thành
Job : IT

Tự học lạp trình PHP Empty
Bài gửiTiêu đề: Tự học lạp trình PHP   Tự học lạp trình PHP I_icon_minitimeSat Jan 23, 2010 10:18 pm

Có nhiều phần mềm viết PHP nhưng chúng ta lấy notepad++ viêt là đủ.

Phân trang PHP hoàn chỉnh
Điều
kiện trước khi đọc bài viết:

1. Bạn phải biết cách kết nối vào DB.
2. Bạn đã tạo sẵn 1 table và table này có chứa nhiều
thông tin để chờ... phân trang

Bạn tạo file list.php (Hay
tạo file nào đó cũng được) có code hoàn chỉnh như sau:

CODE
$page = isset ( $_GET["page"] ) ? intval ( $_GET["page"] )
: 1;
$rows_per_page = 20;
$page_start = ( $page - 1 ) * $rows_per_page;
$page_end = $page * $rows_per_page;
$sql_query = mysql_query("SELECT * FROM table_name");
$number_of_page = ceil ( mysql_num_rows( $sql_query ) / $rows_per_page );
if ( $number_of_page > 1 )
{
$list_page = " Trang: ";
for ( $i = 1; $i <= $number_of_page; $i++ )
{
if ( $i == $page )
{
$list_page .= " [ {$i} ] ";
}
else
{
$list_page .= " {$i}
";
}
}
}
$i = 0;
while ( $result = mysql_fetch_array ( $sql_query ) )
{
if ( $i >= $page_start )
{
print "";
}
$i++;
if ($i >= $page_end)
{
break;
}
}
print <<
border="0">
{$list_page}

EOF;
?>

Giải thích từng đoạn:
1. Cú pháp của đoạn này là:
Page = kiểm tra xem biến page có tồn tại hay không [?]
nếu tồn tại thì lấy giá trị của biến này và dùng hàm intval lọc dể nhận được
giá trị an toàn [:]
còn nếu không thì sẽ có giá trị mặc định là 1
$page = isset ( $_GET["page"] ) ? intval ( $_GET["page"] )
: 1;
2. Số dòng trên 1 trang
$rows_per_page = 20;
3. Tính số dòng ở trang mở đầu dựa theo biến $page
$page_start = ( $page - 1 ) * $rows_per_page;
4. Tính số dòng ở trang cuối dựa theo biến $page
$page_end = $page * $rows_per_page;
Ví dụ về trang mở đầu và trang cuối theo công thức trên:
Giả sử trang đang xem hiện giờ là 1, ta đc: $page_start = (1 - 1) * 20 = 0
Còn $page_end = 1 * 20 = 20, vậy ta có giá trị 0 là mở đầu và 20 là kết thúc
5. Truy xuất vào table_name
$sql_query = mysql_query("SELECT * FROM table_name");
6. Tính toán số trang, cách làm như sau:
"mysql_num_rows( $sql_query )" là lấy tổng số dòng của table đã truy
xuất [1]
"$rows_per_page" là bằng 20 (giá trị mà ta đặt ở trên) [2]
Lấy [1] chia cho [2] ta sẽ ra được số trang
Để làm tròn các giá trị từ (x.1 -> x.9 thành 1+x) ta dùng hàm ceil()

CODE
$number_of_page
= ceil ( mysql_num_rows( $sql_query ) / $rows_per_page );

7. Nếu số trang lớn hơn 1 thì sẽ tiến hành liệt kê các trang

CODE
if (
$number_of_page > 1 )
{
$list_page = " Trang: ";
// Tiến hành in từng trang
for ( $i = 1; $i <= $number_of_page; $i++ )
{
// Nếu $i bằng $page hiện giờ sẽ in đậm để nhận biết đang xem trang nào
if ( $i == $page )
{
$list_page .= " [ {$i} ] ";
}
// Ngược lại...
else
{
$list_page .= " {$i}
";
}
}
}

8. Đặt biến $i bằng 0
$i = 0;
9. Liệt kê tất cả các dòng trong 1 table

CODE
while (
$result = mysql_fetch_array ( $sql_query ) )
{
// Nếu như số dòng liệt kê lớn hơn hoặc bằng $page_start thì sẽ in tiếp tục
if ( $i >= $page_start )
{
print $result[noidung]; // Với field noidung là do bạn đặt, ở đây L chỉ ví dụ
}
// Gia tăng giá trị $i theo từng dòng
// Lúc đầu ta đặt biến $i là 0, vậy nếu có 4 dòng thì biến $i sẽ gia tăng cho
đến khi bằng 4
$i++;
// Nếu như số dòng đang liệt kê lớn hơn $page_end thì sẽ kết thúc vòng lặp bằng
"break"
if ($i >= $page_end)
{
break;
}
}

10. Ở trên ta đã nạp nội dung cho biến $list_page, bây giờ thì in nó ra:
(Design what to do )

CODE
print
<<
border="0">
{$list_page}

EOF;



Lưu nội dung file ảnh vào CSDL MYSQL

Nhu cầu phát triển web của
PHP là lưu nội dung của file ảnh vào trong một cơ sở dữ liệu (CSDL) và sau đó
là đọc nội dung của file ảnh đã lưu trong CSDL ra và hiển thị ra trình duyệt.
Nhu cầu này có một số đặc điểm sau:

TỔNG QUAN
Nhu cầu phát triển web của PHP là lưu nội dung của file ảnh vào trong một cơ sở
dữ liệu (CSDL) và sau đó là đọc nội dung của file ảnh đã lưu trong CSDL ra và
hiển thị ra trình duyệt. Nhu cầu này có một số đặc điểm sau:
● Lưu nội dung file ảnh vào CSDL thì sẽ không phụ thuộc vào đường dẫn đến thư
mục chứa hình. Nếu bạn dùng theo cách hiển thị nội dung hình ảnh theo cách
truyền thống thì đường đến file hình thật chính xác thì file hình mới hiển thị
ra, chẳng may thư cấu trúc thư mục đó bị thay đổi thì chúng ta phải cập nhật
lại rất nhiều đường dẫn trên website, hay file ảnh có thể bị xóa mất hay bạn
restore hay backup bị thiếu....Chỉ thiếu một phần nhỏ là file hình không hiển
thị được rồi. Để giảm được những rủi ro này bạn dùng cách như thế này là lưu
nội dung file ảnh vào CSDL như vậy là không phụ thuộc vào đường dẫn hay cấu
trúc thư mục... rất là lôi thôi. Chúng ta chỉ phụ thuộc vào nơi chứa nội dung
chủa file hình.
● Lưu nội dung file ảnh vào CSDL thì rất thuận tiện cho việc backup và restore.
Trong đó dùng cách truy cập trực tiếp đến hình thì khi backup hay restore thì
chúng ta phải backup/restore rất nhiều file nhỏ rất là mệt. Trong khi đó dùng
cách lưu nội dung file ảnh vào CSDL thì chúng ta chỉ cần backup/restore lại một
file là đủ, thông thường là file SQL.
● Nếu chúng ta dùng cách truy cập trực đến file hình thì khi chúng ta upload
hình lên server qua (form upload) thì một số host không cho ta quyền ghi vào
thư mục (write) thì chúng ta không đưa hình lên trang web của mình được. Lưu
file trong CSDL là một giải pháp khá thích hợp trong hoàn cảnh này.
● Không chỉ lưu giới hạn file ảnh vào CSDL mà chúng ta còn lưu rất nhiều file
khác nhau vào CSDL. Để đơn giản chúng ta sẽ tìm hiểu cách lưu file ảnh vào CSDL
MySQL và ngôn ngữ thực hiện là PHP.
THIẾT KẾ CSDL
Chúng ta chỉ cần một bảng để lưu nội dung của một fila ảnh và trong bảng này
chúng ta sẽ thiết kế như sau:
● Cột nhận dạng (ID) của file ảnh, chúng ta dùng kiểu dữ liệu AUTO_INCREMENT để
làm ID cho các file ảnh đã lưu trong CSDL.
● Cột lưu nội dung file ảnh, đây là cột quan trọng quyết định hình ảnh sẽ hiển
thị lên trình duyệt. Nội dung của file ảnh cũa là một chuỗi nhưng dữ liệu nhị
phân. Vì vậy chúng ta sẽ sử dụng kiểu dữ liệu mediumblob để lưu nội dung của
file ảnh (kiểu dữ liệu blob cũng là chuỗi nhị phân, nhưng chiều dài tối đa chỉ
có 65Kb, sẽ không đủ cho chúng ta muốn lưu một fila ảnh lớn).
● Và bảng chúng ta sẽ có cấu trúc như sau
CREATE TABLE imgData (
imgID int NOT NULL AUTO_INCREMENT,
imgContents mediumblob NOT NULL,
PRIMARY KEY (imgID)
);
LƯU NỘI DUNG FILE ẢNH VÀO CSDL
Chúng ta xem như đã có trên server. Và đoạn chương trình sau sẽ mở file ảnh
thông qua tên file để đọc nội dung của file ảnh và lưu nội dung file ảnh vào
trong CSDL.
//connect vào CSDL MySQL
//host = localhost
//username = root
//password = root
$conn = mysql_connect("localhost", "root",
"root");
//chọn database làm việc
mysql_select_db("imgSave", $conn);
//tên file ảnh
$imgFilename = "imgData.jpg";
//mở file ảnh để đọc với chế độ đọc binary
$f = fopen($imgFilename, "rb");
$imgContents = fread($f, filesize($imgFilename));
fclose($f);
//chèn nội dung file ảnh vào table imgConetnts
$sql = "INSERT INTO imgData (imgContents) VALUES('" .
mysql_real_escape_string($imgContents, $conn) . "')";
mysql_query($sql, $conn);
?>


Được sửa bởi bogiavns ngày Sat Jan 23, 2010 11:08 pm; sửa lần 1.
Về Đầu Trang Go down
http://www.noithatdenhat.com
bogiavns
Ban Quản Trị
Ban Quản Trị
bogiavns


Tổng số bài gửi : 18
Thành tích : 33
Join date : 19/01/2010
Age : 44
Đến từ : Đại Thành
Job : IT

Tự học lạp trình PHP Empty
Bài gửiTiêu đề: Re: Tự học lạp trình PHP   Tự học lạp trình PHP I_icon_minitimeSat Jan 23, 2010 10:29 pm

ĐỌC
NỘI DUNG FILE ẢNH TỪ CSDL

Để đọc nội dung của file ảnh từ CSDL, ta cần ID của file ảnh nếu chúng ta muốn
hiển thị tấm hình nào. Đoạn mã sau sẽ minh hoạ chi tiết, nhưng ở đây ta chỉ lấy
1 tấm hình có chỉ số ID = 1.
//connect vào CSDL MySQL
//host = localhost
//username = root
//password = root
$conn = mysql_connect("localhost", "root",
"root");
//chọn database làm việc
mysql_select_db("imgSave", $conn);
//ID của file ảnh
$imgID = 1;
//đọc nội dung file ảnh từ table tblImage
$sql = "SELECT * FROM imgData WHERE imgID=" . $imgID;
$result = mysql_query($sql, $conn);
while($row = mysql_fetch_array($result)){
$imgData = $row['imgContents'];
}
?>
Biến $imgData sẽ chứa nội dung của file ảnh. Bước tiếp theo, ta xuất nội dung
của file ảnh ra browser. Quá trình xuất nội dung của file ảnh ra browser. Nhưng
chúng ta phải báo cho Browser biết nội dung của chúng ta xuất ra là hình ảnh,
đơn giản là chúng ta chỉ chèn vào một dòng
header("Content-type: image/jpeg"); là được. Và sau đây là quy trình
xuất ra nội dung một file ảnh như sau.
header("Content-type: image/jpeg");
echo $imgData;
?>
Như bạn đã thấy rồi đó lưu file ảnh vào CSDL và đọc nội dung của một file ảnh
từ CSDL để xuất ra Browser thật là không dễ chút nào. Nhưng chúng ta chỉ cần
lưu ý các bước sau đây.
· Đọc nội dung file vào 1 biến, bạn nhớ phải mở file với chế độ đọc binary.
· Xử lý các ký tự đặc biệt trước khi lưu vào database (sử dụng hàm
mysql_real_escape_string).
· Trước khi xuất nội dung file ra browser, bạn nhớ dùng hàm header để báo cho
browser biết kiểu file mà chương trình của bạn chuẩn bị trả về là một file ảnh.

KẾT LUẬN
Chúng ta có thể dùng cách này để viết một chương trình quản lý download trên
website của mình. Tuy nhiên chúng ta cũng cần có một vài điều chú ý như sau:
· Làm như vậy thì server sẽ xử lý nhiều công việc hơn cách download file trực
tiếp.
· Tốc độ download sẽ chậm hơn rất nhiều so với download file trực tiếp.
· Nội dung file thì được lưu trữ trong CSDL mà CSDL cho số lượng người kết nối
vào có hạn, trong khí đó với 1 file có dung lượng lớn thì chúng ta có thể mất
rất nhiều thời gian để download

MỘT THÍ DỤ VỀ CHƯƠNG TRÌNH DOWNLOAD
Giả sử chúng ta có 1 file example.zip nằm trong cùng một thư mục với file
download.php. Nhưng chỉ người viết mới biết là file này nằm ở đâu, người truy
cập muốn lấy file example.zip về thì phải truy cập vào trang download.php và
trang download.php sẽ có nội dung như sau:
//file download.php
$filename = "example.zip";
$f = fopen($filename, "rb");
header("Content-type: application/octet-stream");
header("Content-length: " . filesize($filename));
fpassthru($f);
fclose($f);
?>
Chúng ta chỉ cần bấy nhiêu là hoàn thành một trang download. Nhưng nếu muốn cho
trang download chúng ta đẹp hơn, hoàn thiện hơn thì chúng ta phải cải tiến
thêm.
Giải thích những câu lệnh trên
Đầu tiên, ta mở file example.zip để đọc ở chế độ nhị phân (binary):
$f = fopen($filename, "rb");
Tiếp theo ta báo cho browser biết data trả về từ server là dữ liệu nhị phân chứ
không phải là văn bản HTML như thông thường:
header("Content-type: application/octet-stream");
Đồng thời ta cũng báo cho browser biết dung lượng của file sẽ được tải xuống:
header("Content-length: " . filesize($filename));
Và cuối cùng là đọc nội dung file và echo lại cho browser download:
fpassthru($f);.
Lệnh fpassthru($f); tương đương với 2 lệnh:
$content = fread($f, filesize($filename));
echo $content;
Và như thế chúng ta có thể thí dụ chạy trên nhiều kiểu file khác nhau như
(word, excel, PDF...) và bạn sẽ thấy có một vài chỗ thật khó chịu vì browser
mặc định sẽ lưu file của bạn lên đĩa với tên là download.php bạn phải đổi tên
lại cho đúng và trước khi mở file đó ra đọc.
Để giải quyết vấn đề trên ta chỉ cần thêm một lệnh header() nữa là được.
header('Content-disposition: attachment; filename="'.$filename.'"');
Tham số "attachment" của header "Content-disposition" sẽ
báo cho browser biết là nên download và save file thay vì open. Tham số
"filename=" sẽ báo cho browser biết tên của file đang được download.
Tới đây chúng ta có thể nâng cấp trang web của mình lên cho người dùng chọn
file để download. Có nghĩa là chúng ta hiển thị ra 1 list các tập tin cho người
dùng download và liên kết các file download đều đến file
download.php?filename=”Tên file cần download”. Trong file download.php chỉ cần
$_GET['filename'] là chúng ta có thể download về được.
Và file download.php sẽ
có nội dung như sau:

$filename =
isset($_GET['file'])?$_GET['file']:'';

$upload_dir =
"../upload/";

//Mở file với chế độ
nhị phân

$fp =
fopen($upload_dir.$filename, "rb");

//gởi header đến cho
browser

header('Content-type:
application/octet-stream');

header('Content-disposition:
attachment; filename="'.$filename.'"');

header('Content-length:
' . filesize($upload_dir.$filename));

//đọc file và trả dữ
liệu về cho browser

fpassthru($fp);
fclose($fp);

Menu đa cấp - đệ qui function

Chắc có lẽ cũng nhiều bạn muốn biết cách để làm một forum nhiều children
forum hay cây thư mục đa cấp nên minh viết một bài về đệ qui category sử dụng
php & mysql cho các bạn tham khảo.



Cách viết cũng rất đơn giản thôi: sử dụng một function gọi lại chính nó.
vi dụ đơn giản
chỉ với 100 lần gọi lại như sau:
Tự học lạp trình PHP Clip_image001
function category($x="0",$text="--"){
for($x=1;$x<=100;$x++)
// sau mỗi lần lặp lại nâng biến $x lên một giá trị

{
echo
$x.$text."
";

category($x,$text."--");
// function category được gọi lại

}
}
Bây giờ ta ứng
dụng đệ qui để làm một category như sau:

Các bạn tạo các
file sau:

Run table sql
sau:

CODE
CREATE TABLE
`multi_category` (
`category_id`
smallint(5) unsigned NOT NULL auto_increment,
`parent_id`
smallint(5) unsigned NOT NULL default '0',
`name`
varchar(100) NOT NULL default '',
`link`
varchar(100) NOT NULL default '',
`date`
date NOT NULL default '0000-00-00',
PRIMARY
KEY (`category_id`)
)
TYPE=MyISAM AUTO_INCREMENT=66 ;

Tạo một file
config.php

PHP Code
$dbhost="localhost";
$dbname="multi_category";
$dbuser="root";
$dbpass="";
$table="multi_category";
$date=date("YmdHis");
$db=mysql_connect("$dbhost","$dbuser","$dbpass")
or die("Die connect: ".mysql_error());
mysql_select_db("$dbname")
or die("Die select database: ".mysql_error());
?>
Tạo một file
index.php

PHP Codeinclude
"config.php";
?>
http-equiv="Content-Type" content="text/html; charset=utf-8">

href='style.css' type='text/css' rel=stylesheet>
"add_category.php";?>
tiếp theo tạo
file add_category.php

PHP Codefunction show_categories($parent_id="0",
$insert_text="--")
{ global
$db;
if (!
$categories = mysql_query("SELECT * FROM multi_category WHERE
parent_id=".$parent_id." ORDER BY parent_id", $db))
{ die
("cannot query");
} while
($category=mysql_fetch_array($categories, MYSQL_ASSOC))
{ echo("
value='".$category["category_id"]."'>".$insert_text.$category["name"]."");
show_categories($category["category_id"],$insert_text."--");} return
true;
} function
selectCtrl ($name, $class)
{ global $db;
print
"Main category";
} ?> echo
"

action='add_category_action.php'>
align='center'> [i][i]
[/i][i]";echo
"
[/i]

name='link' type='text' size='35' maxlength='100'
class='forFormDim'>
";selectCtrl('parent',
'forFormDim');
print"

name='Submit' type='submit' class='forFormButton' value='Add category'>
[/i]
";
?> Tạo file
add_category_action.php
PHP Codeinclude
"config.php";
$name =
$HTTP_POST_VARS['name'];
$parent =
$HTTP_POST_VARS['parent'];
$link =
$HTTP_POST_VARS['link'];
$date =
date ("d-m-Y");//$HTTP_POST_VARS['date'];
$query="insert
into $table (name, parent_id, link, date) values ('$name', '$parent', '$link',
'$date')";
$result=
mysql_query($query) or die("Die query: ".mysql_error());
//$n=
mysql_fetch_array($result);
header("Location:
index.php");
?>
Sau khi tạo đủ
các file trên bạn có thể test thử và xem code dể hiểu thôi.

Các bạn để ý file
add_category.php function đệ qui được viết trong đó, ở đây chúng ta chỉ cần sử
dụng 1 table sql với 2 field đủ để thể hiện multi category, có thể dùng cái này
cho forum hoặc menu nhiều cấp..vv...


Hôm nay tạm post tới đây mai mình post tiếp cho bà con cùng học!
Về Đầu Trang Go down
http://www.noithatdenhat.com
dkmkmc

dkmkmc


Tổng số bài gửi : 17
Thành tích : 36
Join date : 19/02/2010
Age : 33
Đến từ : ĐẠI TÂN_ ĐẠI THÀNH
Job : SV_cnTN

Tự học lạp trình PHP Empty
Bài gửiTiêu đề: Re: Tự học lạp trình PHP   Tự học lạp trình PHP I_icon_minitimeMon Mar 01, 2010 1:39 pm

cái này để làm gì hả chú
:face:
Về Đầu Trang Go down
http://www.nhaccuatui.com/nghe?M=1A439ttNSz
Nhok_Ngo
Thiếu Niên H24H
Thiếu Niên H24H
Nhok_Ngo


Tổng số bài gửi : 202
Thành tích : 257
Join date : 08/02/2010
Age : 28

Tự học lạp trình PHP Empty
Bài gửiTiêu đề: Re: Tự học lạp trình PHP   Tự học lạp trình PHP I_icon_minitimeMon Mar 01, 2010 1:54 pm

cấm post với vẩn nhá
Về Đầu Trang Go down
bogiavns
Ban Quản Trị
Ban Quản Trị
bogiavns


Tổng số bài gửi : 18
Thành tích : 33
Join date : 19/01/2010
Age : 44
Đến từ : Đại Thành
Job : IT

Tự học lạp trình PHP Empty
Bài gửiTiêu đề: Re: Tự học lạp trình PHP   Tự học lạp trình PHP I_icon_minitimeSun Mar 06, 2011 9:34 pm

Nhok_Ngo đã viết:
cấm post với vẩn nhá
Thế nào là (POST VỚ VẨN)?
Về Đầu Trang Go down
http://www.noithatdenhat.com
Sponsored content





Tự học lạp trình PHP Empty
Bài gửiTiêu đề: Re: Tự học lạp trình PHP   Tự học lạp trình PHP I_icon_minitime

Về Đầu Trang Go down
 
Tự học lạp trình PHP
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» lớp 9 đi bán trinh mua đt =))
» nero 8.3.2.1 -Trình ghi đĩa nổi tiếng nhất thế giới
» [Nhất Kiếm]Hoàn tất quá trình bảo trì

Permissions in this forum:Bạn không có quyền trả lời bài viết
Hiệp Hòa - Quê Hương Tôi - Chung tay vì một thế hệ trẻ :: Trao Đổi Học Tập Kinh Nghiệp :: Câu Lạc Bộ Tin Học-
Chuyển đến 
Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất