Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
280,55 KB
Nội dung
Chƣơng 6 : CHO PHÉP NGƢỜI SỬ DỤNG
SOẠN THẢO CƠ SỞ DỮ LIỆU
Nhận dữ liệu từ cơ sở dữ liệu khi cung cấp một vài dữ liệu cho cơ sở dữ liệu.
Nhưng cơ sở dữ liệu thì không tạo ra nội dung mà chỉ lấy dữ liệu từ hệ thống khác. Điều
này có nghĩa là bạn phải tạo hệ thống dữ liệu từ PHP.
Tất cả cơ sở dữ liệu tương tác dựa trên SQL. Bạn biết là cú pháp SQL lấy dữ liệu
từ mảng.
Hầu hết mọi người dùng SQL để chèn dữ liệu mà PHP sửa đổi hoặc tạo ra.
Chương này đề cập đến soạn thảo cơ sở dữ liệu, bao gồm:.
Thêm: điều này thì đơn giản, nhưng bạn sẽ tìm để thêm vào trong một cơ sở dữ liệu
Xóa: không sửa đổi lại cấu trúc cơ sở dữ liệu và có liên quan đến tính toàn vẹn.
Sữa đổi: thay thế một vài vùng soạn thảo với nội dung mới trong một hồ sơ có
sẵn.
Sửa dữ liệu trong mẩu tin
Có dữ liệu trong cơ sở dữ liệu là một việc tốt, nhưng dữ liệu có khả năng nhận rõ
chính nó và có khuynh hướng cập nhật. Để cập nhật dữ liệu bạn cần nhận biết dữ liệu cập
nhật và hệ thống người sử dụng hiện tạivới giao diện tốt. Việc sử dụng giao diện tương
tự như việc tạo dữ liệu thường là một thực tiễn tốt.
Ví dụ:Sửa đổi một Movie
Trong ví dụ này, bạn tạo ra một tập lệnh mà có thể sửa đổi một bộ phim. Bạn sẽ xây
dụng trên movie.php .
1.Mở movie.php và nhập mã lệnh
<?php
$link = mysql_connect(“localhost”, “root”, “”)
or die(“Could not connect: “ . mysql_error());
mysql_select_db(„moviesite‟, $link)
or die ( mysql_error());
$peoplesql = “SELECT * FROM people”;
$result = mysql_query($peoplesql)
or die(“Invalid query: “ . mysql_error());
while ($row = mysql_fetch_array($result)) {
$people[$row[„people_id‟]] = $row[„people_fullname‟];
}
switch ($_GET[„action‟])
{
case “edit”:
$moviesql = “SELECT * FROM movie
WHERE movie_id = „“ . $_GET[„id‟] . “„“;
$result = mysql_query($moviesql)
or die(“Invalid query: “ . mysql_error());
$row = mysql_fetch_array($result);
$movie_name = $row[„movie_name‟];
$movie_type = $row[„movie_type‟];
$movie_year = $row[„movie_year‟];
$movie_leadactor = $row[„movie_leadactor‟];
$movie_director = $row[„movie_director‟];
break;
default:
$movie_name = “”;
$movie_type = “”;
$movie_year = “”;
$movie_leadactor = “”;
$movie_director = “”;
break;
}
?>
<html>
<head>
<title><?php echo $_GET[„action‟]; ?> movie</title>
<style type=”text/css”>
TD{color:#353535;font-family:verdana}
TH{color:#FFFFFF;font-family:verdana;background-color:#336699}
</style>
</head>
<body>
<form action=”commit.php?action=<?php
echo $_GET[„action‟]; ?>&type=movie&id=<?php
echo $_GET[„id‟]; ?>” method=”post”>
<table border=”0” width=”750” cellspacing=”1” cellpadding=”3”
bgcolor=”#353535” align=”center”>
<tr>
<td bgcolor=”#FFFFFF” width=”30%”>Movie Name</td>
<td bgcolor=”#FFFFFF” width=”70%”>
<input type=”text” name=”movie_name”
value=”<?php echo $movie_name; ?>”>
</td>
</tr>
<tr>
<td bgcolor=”#FFFFFF”>Movie Type</td>
<td bgcolor=”#FFFFFF”>
<select id=”game” name=”movie_type”
style=”width:150px”>
<?php
$sql = “SELECT movietype_id, movietype_label “ .
“FROM movietype ORDER BY movietype_label”;
$result = mysql_query($sql)
or die(“<font color=\”#FF0000\”>Query Error</font>” .
mysql_error());
while ($row = mysql_fetch_array($result))
{
if ($row[„movietype_id‟] == $movie_type)
{
$selected = “ selected”;
}
else {
$selected = “”;
}
echo „<option value=”‟ . $row[„movietype_id‟] . „“„ .
$selected.‟>‟ . $row[„movietype_label‟] . „</option>‟ .
“\r\n”;
}
?>
</select>
</td>
</tr>
<tr>
<td bgcolor=”#FFFFFF”>Movie Year</td>
<td bgcolor=”#FFFFFF”>
<select name=”movie_year”>
<option value=”” selected>Select a year </option>
<?php
for ($year = date(“Y”); $year >= 1970; $year )
{
if ($year == $movie_year)
{
$selected = “ selected”;
} else {
$selected = “”;
}
?>
<option value=”<?php echo $year; ?>”<?php
echo $selected; ?>><?php echo $year; ?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td bgcolor=”#FFFFFF”>Lead Actor</td>
<td bgcolor=”#FFFFFF”>
<select name=”movie_leadactor”>
<option value=”” selected>Select an actor </option>
<?php
foreach ($people as $people_id => $people_fullname) {
if ($people_id == $movie_leadactor)
{
$selected = “ selected”;
} else {
$selected = “”;
}
?>
<option value=”<?php echo $people_id; ?>”<?php
echo $selected; ?>><?php echo $people_fullname;
?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td bgcolor=”#FFFFFF”>Director</td>
<td bgcolor=”#FFFFFF”>
<select name=”movie_director”>
<option value=”” selected>Select a director </option>
<?php
foreach ($people as $people_id => $people_fullname) {
if ($people_id == $movie_director) {
$selected = “ selected”;
} else {
$selected = “”;
}
?>
<option value=”<?php echo $people_id; ?>”<?php
echo $selected; ?>><?php echo $people_fullname;
?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td bgcolor=”#FFFFFF” colspan=”2” align=”center”>
<input type=”submit” name=”SUBMIT” value=”<?php
echo $_GET[„action‟]; ?>”>
</td>
</tr>
</table>
</form>
</body>
</html>
2. Mở tập lệnh commit.php và thay đổi nội dung như sau:
<?php
// COMMIT ADD AND EDITS
$link = mysql_connect(“localhost”, “bp5am”, “bp5ampass”)
or die(“Could not connect: “ . mysql_error());
mysql_select_db(„moviesite‟, $link)
or die ( mysql_error());
switch ($_GET[„action‟])
{
case “edit”:
switch ($_GET[„type‟])
{
case “movie”:
$sql = “UPDATE movie SET
movie_name = „“ . $_POST[„movie_name‟] . “„,
movie_year = „“ . $_POST[„movie_year‟] . “„,
movie_type = „“ . $_POST[„movie_type‟] . “„,
movie_leadactor = „“ .$_POST[„movie_leadactor‟].”‟,
movie_director = „“ . $_POST[„movie_director‟] . “„
WHERE movie_id = „“ . $_GET[„id‟] . “„“;
break;
}
break;
case “add”:
switch ($_GET[„type‟])
{
case “movie”:
$sql = “INSERT INTO movie
(movie_name,
movie_year,
movie_type,
movie_leadactor,
movie_director)
VALUES
(„“ . $_POST[„movie_name‟] . “„,
„“ . $_POST[„movie_year‟] . “„,
„“ . $_POST[„movie_type‟] . “„,
„“ . $_POST[„movie_leadactor‟] . “„,
„“ . $_POST[„movie_director‟] . “„)”;
break;
}
break;
}
if (isset($sql) && !empty($sql))
{
echo “<! ” . $sql . “ >”;
$result = mysql_query($sql)
or die(“Invalid query: “ . mysql_error());
?>
<p align=”center” style=”color:#FF0000”>
Done. <a href=”index.php”>Index</a>
</p>
<?php
}
?>
3. Bây giờ mở http://localhost/chapter6/index.php hiển thị như Hình 6.6.1
Hình 6.6.1
4. Thử click liên kết EDIT ở “Bruce Almighty” movie, thay đổi một vài thứ trong hộp và
tên film, ấn nút “edit” sẽ hiển thị như Hình 6.6.2
Hình 6.6.2
5. Edit “Bruce Almighty” nhận lại với thủ tục trong bước 4, và ấn định lại như cũ.
Bây giờ liên kết EDIT cho film, bạn thấy rằng tập lệnh lưu trữ giá trị và cho phép
sửa đổi dữ liệu dễ dàng
Cách thức làm việc
Đoạn mã commit.php giống với những gì bạn thấy. Nhưng có một phát triển cần
quan tâm trong movie.php. Chúng ta hãy nhìn vào một vài chi tiết
Đầu tiên hãy nhìn vào switch ở phần đầu của tập lệnh. Bạn định nghĩa một switch trên
một chuổi truy vấn tham số tên action. Nếu action là edit, bạn truy vấn cơ sở dữ liệu cho
một mẩu tin tương ứng đến id lý thuyết trong chuổi truy vấn tham số id và đặt một vài
biến. Những biến này được đặt để tránh action không là edit
switch ($_GET[„action‟])
{
case “edit”:
$moviesql = “SELECT * FROM movie
WHERE movie_id = „“ . $_GET[„id‟] . “„“;
$result = mysql_query($moviesql)
or die(“Invalid query: “ . mysql_error());
$row = mysql_fetch_array($result);
$movie_name = $row[„movie_name‟];
$movie_type = $row[„movie_type‟];
$movie_year = $row[„movie_year‟];
$movie_leadactor = $row[„movie_leadactor‟];
$movie_director = $row[„movie_director‟];
break;
default:
$movie_name = “”;
$movie_type = “”;
$movie_year = “”;
$movie_leadactor = “”;
[...]... bgcolor=”#FFFFFF” width=”30%”>Movie Name ”> Trong ví dụ này, vùng movie_name lấy nội dung biến $movie_name như một giá trị mặc Điều này cho phép bạn nạp lại với mẩu tin đã được chỉnh sửa Việc sửa đổi văn bản thì dễ dàng Sửa đổi giá trị trong một danh sách là một chuyện khác Bạn không... dùng có thể bỏ qua nó nếu không muốn thay đổi nó Làm điều này như thế nào? Movie Type < ?php $sql = “SELECT movietype_id, movietype_label “ “FROM movietype ORDER BY movietype_label”; $result = mysql_query($sql) or die(“Query Error” mysql_error()); while ($row... $row[„movietype_id‟] „“„ $selected „>‟ $row[„movietype_label‟] „‟ “\r\n”; } ?> Bạn nạp vào danh sách như bạn sẽ làm nếu bạn thêm một mẩu tin, nhưng bạn so sánh giá trị hiện hành với giá trị mặc định Nếu chúng đúng thì thêm cờ đơn giản SELECTED để lựa chọn Việc này đặt danh sách giá trị mặc định đến giá trị hiện hành trong bảng if ($row[„movietype_id‟] == $movie_type) { $selected . DỮ LIỆU
Nhận dữ liệu từ cơ sở dữ liệu khi cung cấp một vài dữ liệu cho cơ sở dữ liệu.
Nhưng cơ sở dữ liệu thì không tạo ra nội dung mà chỉ lấy dữ liệu. dữ liệu từ PHP.
Tất cả cơ sở dữ liệu tương tác dựa trên SQL. Bạn biết là cú pháp SQL lấy dữ liệu
từ mảng.
Hầu hết mọi người dùng SQL để chèn dữ liệu