Trong bài tập này bạn liên kết các bảng lại với nhau như bạn thấy trong chương
3, bạn có thể xuất đầy đủ thông tin dữ liệu.
Sửa file table1.php như sau lưu lại với tên table2.php
<?php
$link = mysql_connect(“localhost”,”root”,””) or die(mysql_error());
mysql_select_db(“moviesite”)
or die (mysql_error());
$query = “SELECT movie_name, movie_director, movie_leadactor “ . “FROM movie”;
$result = mysql_query($query, $link) or die(mysql_error());
$num_movies = mysql_num_rows($result);
Có thể bạn quan tâm!
- Các Kiểu Bảng Của My Sql Và Kỹ Thuật Lưu Trữ
- Làm Việc Với Php Và Mảng Dữ Liệu: Foreach
- Sử Dụng Bảng Để Trình Bày Dữ Liệu
- Cơ sở dữ liệu APACHE, PHP, MYSQL - 12
- Những Thành Phần Của Form: Cho
- Cơ sở dữ liệu APACHE, PHP, MYSQL - 14
Xem toàn bộ 258 trang tài liệu này.
$movie_header=<<<EOD
<h2><center>Movie Review Database</center></h2>
<table width=”100%” border=”1” cellpadding=”2” cellspacing=”2” align=”center”>
<tr>
<th>Movie Title</th>
<th>Movie Director</th>
<th>Movie Lead Actor</th>
</tr> EOD;
function get_director()
{
global $movie_director; global $director;
$query_d = “SELECT people_fullname “ . “FROM people “ .
“WHERE people_id=’$movie_director’”;
$results_d = mysql_query($query_d)
or die(mysql_error());
$row_d = mysql_fetch_array($results_d); extract($row_d);
$director = $people_fullname;
}
function get_leadactor()
{
global $movie_leadactor; global $leadactor;
$query_a = “SELECT people_fullname “ . “FROM people “ .
“WHERE people_id=’$movie_leadactor’”;
$results_a = mysql_query($query_a) or die(mysql_error());
$row_a = mysql_fetch_array($results_a); extract($row_a);
$leadactor = $people_fullname;
}
while ($row = mysql_fetch_array($result))
{
$movie_name = $row[‘movie_name’];
$movie_director = $row[‘movie_director’];
$movie_leadactor = $row[‘movie_leadactor’];
//get director’s name from people table get_director();
//get lead actor’s name from people table get_leadactor();
$movie_details .=<<<EOD
<tr>
<td>$movie_name</td>
<td>$director</td>
<td>$leadactor</td>
</tr> EOD;
}
$movie_details .=<<<EOD
<tr>
<td>Total :$num_movies Movies</td>
</tr> EOD;
$movie_footer =”</table>”;
$movie =<<<MOVIE
$movie_header
$movie_details
$movie_footer MOVIE;
echo “There are $num_movies movies in our database”; echo $movie;
?>
Kết quả như Hình 4.2.2.
Hình 4.2.2.
Cách thức hoạt động:
Với việc thêm vào hàm get_director và get_leadactor tập lệnh yêu cầu những thông tin đặt biệt từ server cho mỗi dòng trên bảng. Điều này có thể cho bạn điền đầy đủ
thông tin từ một đống hỗn độn trong truy vấn gốc, bạn có thể làm sạch những định
dạng trong 2 dòng trước với sự thay đổi trong đoạn mã gần kết kết thúc của tập lệnh.
Cấu hình: Bạn đã thành công trong việc phát triển sức mạnh về tập lệnh, nó sẽ là cơ sở dữ liệu truy vấn và đặt nội dung vào bảng HTML. Cho chính bạn thấy ánh sáng trong bóng tối, nhưng giống tất cả những trình duyệt tốt , chúng ta phải đi về phía trước.
4.3. Master là ai?
Bây giờ chúng ta hãy xây dựng một công việc tốt mà bạn đã làm nhiều và thêm nhiều thông tin và hàm hơn vào bảng của bạn. Phương tiện quan hệ giữa cha và con trong trang web của bạn cho phép người dùng có thể click vào tiêu đề của bộ phim để biết thông tin về bộ phim. Dĩ nhiên là ở đây tất cả sẽ trở thành trang web động chung, vì thế chúng ta tìm như thế nào để làm và quan hệ cha con có nghĩa.
Ví dụ: Thêm liên kết trong table
Mở trang table2.php trong bài và thêm vào những dòng mã mà xuất hiện nổi bật.
$query = “SELECT movie_id, movie_name, “ . “movie_director, movie_leadactor “ .
“FROM movie”;
$result = mysql_query($query, $link) or die(mysql_error());
$num_movies = mysql_num_rows($result);
$movie_details = ‘’;
while ($row = mysql_fetch_array($result))
{
$movie_id = $row[‘movie_id’];
$movie_name = $row[‘movie_name’];
$movie_director = $row[‘movie_director’];
$movie_leadactor = $row[‘movie_leadactor’];
//get director’s name from people table get_director();
//get lead actor’s name from people table get_leadactor();
$movie_details .=<<<EOD
<tr>
<td><a href=”movie_details.php?movie_id=$movie_id” title=”Find out more about $movie_name”>$movie_name</td>
<td>$director</td>
<td>$leadactor</td>
</tr> EOD;
}
Lưu file với tên table3.php, sau đó load lên server, mở lại trình duyệt. Bạn sẽ thấy như Hình 4.3.1
Hình 4.3.1
Cách thức hoạt động:
Bạn sẽ chú ý một sự thay đổi giữa hình table2.php và table3.php. Bạn có nhiều liên kết cho nhiều thông tin đến mỗi movie cho người viếng thăm trang web của bạn.
Thay đổi đầu tiên so với phần trước truy vấn MySQL là biến $movie_id Sau đó bạn thêm vùng mới cho kết quả trả về từ truy vấn.
Thay đổi cuối cùng tạo mã HTML mà đưa ra liên kết trong tên movie.
Bây giờ việc thay đổi đã hoàn thành, thực tế nó làm gì? Nơi bạn đặt con chuột trên dòng liên kết, bạn sẽ thấy mỗi liên kết là duy nhất và tạo ra trang web động. Trang này được coi như trang chủ, trang sẽ liên kết tới như trang con
Tốt, ồ? Không có nhiều loại liên kết khác nhau
Trước khi bạn đi xa hơn, bạn cần thêm một vài dữ liệu cho cơ sở hiện hành của
bạn. Nếu bạn gọi lại từ chương 3, cho mỗi phim, bạn có tên phim, người lãnh đạo và năm.
Vì dụ: Thêm dữ liệu vào bảng
Trong bài này, bạn sẽ thêm dữ liệu về mỗi movie đến cơ sở dữ liệu Mở trình soạn thảo của bạn và gõ đoạn mã sau:
<?php
$link = mysql_connect(“localhost”,”root”,””) or die(mysql_error()); mysql_select_db(“moviesite”)
or die (mysql_error());
//alter “movie” table to include running time/cost/takings fields
$add = “ALTER TABLE movie ADD COLUMN ( “ .
“movie_running_time int NULL, “ . “movie_cost int NULL, “ . “movie_takings int NULL)”;
$results = mysql_query($add) or die(mysql_error());
//insert new data into “movie” table for each movie
$update = “UPDATE movie SET “ . “movie_running_time=102, “ . “movie_cost=10, “ . “movie_takings=15 “ .
“WHERE movie_id = 1”;
$results = mysql_query($update) or die(mysql_error());
$update = “UPDATE movie SET “ . “movie_running_time=90, “ . “movie_cost=3, “ . “movie_takings=90 “ .
“WHERE movie_id = 2”;
$results = mysql_query($update) or die(mysql_error());
$update = “UPDATE movie SET “ . “movie_running_time=134, “ . “movie_cost=15, “ . “movie_takings=10 “ .
“WHERE movie_id = 3”;
$results = mysql_query($update) or die(mysql_error());
?>
Bạn lưu với tên alter_movie.php, sau đó mở file trong trình duyệt. Không lo lắng, bạn sẽ thấy một màn hình trống, nhưng bảng của bạn đã được thay đổi và thông tin đã đưa vào tự động
Cách thức làm việc:
Trước tiên, tập lệnh dùng lệnh ALTER TABLE để thêm vào những vùng tương thích trong bảng hiện hành, sau đó sử dụng lệnh UPDATE để chèn dữ liệu mới vào những vùng đó.
Bây giờ bạn có dữ liệu, bạn cần tạo một trang mới mà bạn sẽ hiển thị thêm thông tin(movie_details.php)
Ví dụ: Trong bài tập này, bạn sẽ tạo một trang mới để hiển thị dữ liệu mà bạn
thêm vào bài trước.
Mở trình soạn thảo và gõ vào chương trình sau:
<?php
$link = mysql_connect(“localhost”,”root”,””) or die(mysql_error()); mysql_select_db(“moviesite”)
or die (mysql_error());
/* Function to calculate if a movie made a profit, loss or broke even */
function calculate_differences($takings, $cost)
{
$difference = $takings - $cost; if ($difference < 0)
{
$difference = substr($difference, 1);
$font_color = ‘red’;
$profit_or_loss = “$” . $difference . “m”;
}
elseif ($difference > 0)
{
}
else
{
}
$font_color =’green’;
$profit_or_loss = “$” . $difference . “m”;
$font_color = ‘blue’;
$profit_or_loss = “Broke even”;
return “<font color=”$font_color”>” . $profit_or_loss . “</font>”;
}
?>
Lưu file này như movie_details.php Cách thức làm việc:
Dòng chứa mã substr thì đặt trước dòng $profit_or_loss bởi vì sẽ có sự trả về số âm và không có thực.
Điều quan trọng cần nhớ là trong PHP bạn có thể dễ dàng tạo biến mới bằng một hoạt động. Bạn không tổ chức thông tin trong dữ liệu không có nghĩa là bạn không tạo được nó.
Ví dụ: Trình bày thông tin mới
Trong bài này bạn sẽ thay đổi bảng trang chủ với dữ liệu mới và điều này tương
ứng như bảng con mới của bạn
Thêm đoạn mã dưới đây vào movie_details.php: