المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس السادس عشر



walid_8281500
03-19-2009, 11:26 PM
السلام عليكم ورحمة الله وبركاتة

كما عودتكم في دروسي سأقوم بشرح شيء جديد هذه المرة

وستكون حذف البيانات من قاعدة البيانات

هذه خاصية سهلة جدا بالتعامل معها

ولكن لديك شيء عليك الاهتمام به وهو انه عندما تقوم بتجريب الحذف في قواعد البيانات

قم بعمل نسخة اخرى من قواعد بياناتك حتى تقوم بتجربة الحذف عليها لأنه اذا ما تم حذف

البيانات من القاعدة فلن تعود ابدا الا اذا قمت بادخالها من جديد

حسنا يكفي كلاما ولنذهب للتطبيق البسيط

مثال (1) :
قم بفتح ملف جديد وسمية delete.php

وقم بكتابة الكود التالي بداخلة




<?php
$link = mysql_connect("localhost", "root", "")
or die("Could not connect: " . mysql_error());
mysql_select_db('moviesite', $link)
or die ( mysql_error());

if (!isset($_GET['do']) || $_GET['do'] != 1) {
?>
<p align="center" style="color:#FF0000">
Are you sure you want to delete this <?php
echo $_GET['type']; ?>?<br>
<a href="<?php echo $_SERVER['REQUEST_URI']; ?>&do=1">yes</a>
or <a href="index.php">Index</a>
</p>
<?php
} else {
if ($_GET['type'] == "people") {

$actor = "UPDATE movie
SET movie_leadactor = '0'
WHERE movie_leadactor = '" . $_GET['id'] . "'";
$result = mysql_query($actor)
or die("Invalid query: " . mysql_error());


$diractor = "UPDATE movie
SET movie_diractor = '0'
WHERE movie_diractor = '" . $_GET['id'] . "'";
$result = mysql_query($diractor)
or die("Invalid query: " . mysql_error());
}

$sql = "DELETE FROM " . $_GET['type'] . "
WHERE " . $_GET['type'] . "_id = '" . $_GET['id'] . "'
LIMIT 1";

echo "<!--" . $sql . "-->";
$result = mysql_query($sql)
or die("Invalid query: " . mysql_error());
?>
<p align="center" style="color:#FF0000">
Your <?php echo $_GET['type']; ?> has been deleted.
<a href="index.php">Index</a>
</p>
<?php
}
?>


طبعا الي حاب يستفيد ويفهم شو كتبنا بالكود بيقدر يكتب الكود مره ثانية بدون مينسخه

الان افتح ملف Index.php وحاول انك تحذف اي شيء موجود في جدول movie

وشاهد النتيجة

طيب رح اشرح كم شي مهم في هالكود

لاحظ انه اذا قمت بحذف شخص مثلا من جدول بيبول رح تصير عندك مشكلة
لانه مربوط في الحقول مثل المنتج والفيلم وما الى ذلك
وايضا الرقم الخاص فيه رح يتغير او ينحذف
طيب كيف نحل هالمشكلة
لاحظ الكود التالي



$actor = "UPDATE movie
SET movie_leadactor = '0'
WHERE movie_leadactor = '" . $_GET['id'] . "'";
$result = mysql_query($actor)
or die("Invalid query: " . mysql_error());




عن طريق هالكود رح نعيد ترتيب ارقام الممثلين الموجودين عندنا ورح نبدأ من الصفر
ففي كل مره بينحذف فيها شخص او فيلم او ما الى ذلك بهالطريقة بنعيد ترتيب الارقام
حتى لا تظهر لدينا اي مشاكل

اما في هذا القسم فقد قمنا بالتالي



$sql = "DELETE FROM " . $_GET['type'] . "
WHERE " . $_GET['type'] . "_id = '" . $_GET['id'] . "'
LIMIT 1";

echo "<!--" . $sql . "-->";
$result = mysql_query($sql)
or die("Invalid query: " . mysql_error());


لاحظ اننه يطلب منه حذف المدخل من النوع type الموجود في رقم اي دي معين والحذف بيتم
لمره واحده فقط

طيب نشوف الحين كيف بدنا نعمل تحرير للبيانات
متذكرين الملف الي اسميناه movie.php
افتحوه واعملو التعديلا الي رح تظهر عندكم



<?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_diractor = $row['movie_diractor'];
break;

default:
$movie_name = "";
$movie_type = "";
$movie_year = "";
$movie_leadactor = "";
$movie_diractor = "";
break;
}
?>
<html>
<head>
<title><?php echo $_GET['action']; ?> movie</title>
<style type="****/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="****" 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">diractor</td>
<td bgcolor="#FFFFFF">
<select name="movie_diractor">
<option value="" selected>Select a diractor...</option>
<?php
foreach ($people as $people_id => $people_fullname) {
if ($people_id == $movie_diractor) {
$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>

وافتحو ايضا الملف commit.php

وقوموا بعمل التعديلات التالية



<?php
// COMMIT ADD AND EDITS
$link = mysql_connect("localhost", "root", "")
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_diractor = '" . $_POST['movie_diractor'] . "'
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_diractor)
VALUES
('" . $_POST['movie_name'] . "',
'" . $_POST['movie_year'] . "',
'" . $_POST['movie_type'] . "',
'" . $_POST['movie_leadactor'] . "',
'" . $_POST['movie_diractor'] . "')";
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
}
?>

انتهينا الان افتحو الملف اندكس وحاولو تجريب ما قمنا بعملة في هذا الدرس

كل ما قمنا بتعلمة هو طريقة اضافة وحذف المدخلات وتعديلها اتمنى لكم الفائدة

تطبيق
قومو بعمل ما سبق على الجدول people واستخدمو ملف الموفي كمثال

يعطيكم الف عافية حبايبي في الدروس القادمة رح نعرف كيف نستخدم

مكتبة الصور في الـ php ومن خلالها رح نتعلم كيف نكتب على الصور وكيف نحررها
ونصغرها ونكبرها ونرفعها على الموقع اما بمجلد او بقاعدة البيانات
اتمنى لكم التوفيق ^^