SwishMax
17-07-2007, 05:37 صباحاً
يمكننا القول ا ن لدينا جدولا فيه (رقم الموضوع) ، (حقل نص1) ، (حقل نص2) .
سوف نقوم بفتح قاعدة البيانات ومعرفة كم عدد السجلات .
1- نضع عدد السجلات في نفس الفورم بحيث يكون مخفي .
2- نعتبر ان رقم الموضوع لايتكرر في الجدول ونضعه في نفس الفورم بحيث يكون مخفي .
1- نضع حقل النص في نفس الفورم بحيث يكون ظاهر
2-نضع حقل النص2 في نفس الفورم بحيث يكون ظاهر
الان نقوم بتجهيز الكود الخاص بالاتصال بقاعده البيانات
الكود
$host = "localhost";
$data = "db ";
$user = "root";
$password = "";
$cnnection = mysql_pconnect($host , $user , $password ) or die(mysql_error());
mysql_select_db($data , $cnnection );
لقد حصلنا الان على اتصال بقاعدة البيانات db
الان نأتي لفتح الجدول
الكود
$sql = "Select * from Table ";
$cmdSQl= mysql_query($sql , $cnnection ) or die(mysql_error());
$rst = mysql_fetch_assoc($cmdSQl);
$rec = mysql_num_rows($cmdSQl);
لقد كتبنا جملة SQL وهي لفتح جميع البيانات من الجدول Table
الان قيمة الجدول مخزنة بالمتغير $rst
وعدد السجلات مخزنة بالمتغير $rec
سوف نقوم الان بوضع فورم الذي يقوم فيه المستخدم بتعديل البيانات
الكود
echo "<form method=\"POST\" action=update.php\"?">\n";
$cu=0;
echo " <table border=\"0\" =\"100%\">\n";
do{
$cu=$cu+1;
echo "<tr>\n";
echo "<td><input type=\"****\" value='".$rst[field1]."' ='a$cu' size=\"30\"></td>\n";
echo "<td><input type=\"****\" value='".$rst[field2]."' ='b$cu' size=\"30\">\n";
echo " <input type=\"hidden\" value='".$rst[field_id]."' ='hid$cu' >";
echo "</td></td>\n";
echo " </tr>\n";
}while ($rst=mysql_fetch_assoc($cmdSQl));
//hiddens
echo "<tr>\n";
echo "<td colspan=2>";
echo "<input type=\"hidden\" value='$rec' ='rec_count' >\n";
echo "</td>\n";
echo "</tr>\n";
//end hiddens
echo "<tr>\n";
echo "<td><input type=\"submit\" style='padding:0 20px;' value='حفظ' ='submit' ></td>\n";
echo "<td></td>\n";
echo "</tr>\n";
echo " </table>\n";
echo "</form>";
هذا الفورم يقوم بتكرار عدد من التكست بحسب عدد البيانات الموجودة بالجدول ويقوم بوضع قيمة الفيلد الاول والثاني في التكست ويضع تكست مخفي برقم السجل الذي يتبعه امام كل سطر (مخفي) ثم يضع عدد السجلات التي جلبها من قاعدة البيانات في تكست ايضا مخفي .
الان عند الضغط على زر حفظ
سوف يتم نقل التعديلات الى صفحة اخرى اسمها update.php
في الصفحة الثانية التي تستقبل التغيرات سوف نقوم بالاتي
سوف نقوم بحلقة حسب عدد السجلات تقوم هذه الحلقة بتعديل كل سجل حسب النص الذي قمنا بتعديله ويمكن معرفة رقم السجل من القيمة المخفية امام كل سطر .
الكود
$cnnection = mysql_pconnect($host , $user , $password ) or die(mysql_error());
mysql_select_db($data , $cnnection );
$rec_count=$_POST['rec_count'];
while ($rec_count>1){
$v1 = $_REQUEST["a$rec_count"];
$v2 = $_REQUEST["b$rec_count"];
$field_id=$_REQUEST["hid$rec_count"];
$SQL = "update table set field1='$v1',field2='$v2' where field_id=$field_id";
mysql_query($SQL , $cnnection ) or die(mysql_error());
$rec_count=$rec_count-1;
}
انتهت الحلقة الان من تعديل البيانات يمكنك نسخ هذا الكود لوضعه في الصفحة update.php
لنسخ الكود كاملا للصفحة الاولى انسخ التالي:
الكود
$host = "localhost";
$data = "db ";
$user = "root";
$password = "";
$cnnection = mysql_pconnect($host , $user , $password ) or die(mysql_error());
mysql_select_db($data , $cnnection );
$sql = "Select * from Table ";
$cmdSQl= mysql_query($sql , $cnnection ) or die(mysql_error());
$rst = mysql_fetch_assoc($cmd);
$rec = mysql_num_rows($cmd);
echo "<form method=\"POST\" action=update.php\"?">\n";
$cu=0;
echo " <table border=\"0\" =\"100%\">\n";
do{
$cu=$cu+1;
echo "<tr>\n";
echo "<td><input type=\"****\" value='".$rst[field1]."' ='a$cu' size=\"30\"></td>\n";
echo "<td><input type=\"****\" value='".$rst[field2]."' ='b$cu' size=\"30\">\n";
echo " <input type=\"hidden\" value='".$rst[field_id]."' ='hid$cu' >";
echo "</td></td>\n";
echo " </tr>\n";
}while ($rst=mysql_fetch_assoc($cmdSQl));
//hiddens
echo "<tr>\n";
echo "<td colspan=2>";
echo "<input type=\"hidden\" value='$rec' ='rec_count' >\n";
echo "</td>\n";
echo "</tr>\n";
//end hiddens
echo "<tr>\n";
echo "<td><input type=\"submit\" style='padding:0 20px;' value='حفظ' ='submit' ></td>\n";
echo "<td></td>\n";
echo "</tr>\n";
echo " </table>\n";
echo "</form>";
ضع هذا الكود في الصفحة index.php عـلى سـبيل المثــال .
سوف نقوم بفتح قاعدة البيانات ومعرفة كم عدد السجلات .
1- نضع عدد السجلات في نفس الفورم بحيث يكون مخفي .
2- نعتبر ان رقم الموضوع لايتكرر في الجدول ونضعه في نفس الفورم بحيث يكون مخفي .
1- نضع حقل النص في نفس الفورم بحيث يكون ظاهر
2-نضع حقل النص2 في نفس الفورم بحيث يكون ظاهر
الان نقوم بتجهيز الكود الخاص بالاتصال بقاعده البيانات
الكود
$host = "localhost";
$data = "db ";
$user = "root";
$password = "";
$cnnection = mysql_pconnect($host , $user , $password ) or die(mysql_error());
mysql_select_db($data , $cnnection );
لقد حصلنا الان على اتصال بقاعدة البيانات db
الان نأتي لفتح الجدول
الكود
$sql = "Select * from Table ";
$cmdSQl= mysql_query($sql , $cnnection ) or die(mysql_error());
$rst = mysql_fetch_assoc($cmdSQl);
$rec = mysql_num_rows($cmdSQl);
لقد كتبنا جملة SQL وهي لفتح جميع البيانات من الجدول Table
الان قيمة الجدول مخزنة بالمتغير $rst
وعدد السجلات مخزنة بالمتغير $rec
سوف نقوم الان بوضع فورم الذي يقوم فيه المستخدم بتعديل البيانات
الكود
echo "<form method=\"POST\" action=update.php\"?">\n";
$cu=0;
echo " <table border=\"0\" =\"100%\">\n";
do{
$cu=$cu+1;
echo "<tr>\n";
echo "<td><input type=\"****\" value='".$rst[field1]."' ='a$cu' size=\"30\"></td>\n";
echo "<td><input type=\"****\" value='".$rst[field2]."' ='b$cu' size=\"30\">\n";
echo " <input type=\"hidden\" value='".$rst[field_id]."' ='hid$cu' >";
echo "</td></td>\n";
echo " </tr>\n";
}while ($rst=mysql_fetch_assoc($cmdSQl));
//hiddens
echo "<tr>\n";
echo "<td colspan=2>";
echo "<input type=\"hidden\" value='$rec' ='rec_count' >\n";
echo "</td>\n";
echo "</tr>\n";
//end hiddens
echo "<tr>\n";
echo "<td><input type=\"submit\" style='padding:0 20px;' value='حفظ' ='submit' ></td>\n";
echo "<td></td>\n";
echo "</tr>\n";
echo " </table>\n";
echo "</form>";
هذا الفورم يقوم بتكرار عدد من التكست بحسب عدد البيانات الموجودة بالجدول ويقوم بوضع قيمة الفيلد الاول والثاني في التكست ويضع تكست مخفي برقم السجل الذي يتبعه امام كل سطر (مخفي) ثم يضع عدد السجلات التي جلبها من قاعدة البيانات في تكست ايضا مخفي .
الان عند الضغط على زر حفظ
سوف يتم نقل التعديلات الى صفحة اخرى اسمها update.php
في الصفحة الثانية التي تستقبل التغيرات سوف نقوم بالاتي
سوف نقوم بحلقة حسب عدد السجلات تقوم هذه الحلقة بتعديل كل سجل حسب النص الذي قمنا بتعديله ويمكن معرفة رقم السجل من القيمة المخفية امام كل سطر .
الكود
$cnnection = mysql_pconnect($host , $user , $password ) or die(mysql_error());
mysql_select_db($data , $cnnection );
$rec_count=$_POST['rec_count'];
while ($rec_count>1){
$v1 = $_REQUEST["a$rec_count"];
$v2 = $_REQUEST["b$rec_count"];
$field_id=$_REQUEST["hid$rec_count"];
$SQL = "update table set field1='$v1',field2='$v2' where field_id=$field_id";
mysql_query($SQL , $cnnection ) or die(mysql_error());
$rec_count=$rec_count-1;
}
انتهت الحلقة الان من تعديل البيانات يمكنك نسخ هذا الكود لوضعه في الصفحة update.php
لنسخ الكود كاملا للصفحة الاولى انسخ التالي:
الكود
$host = "localhost";
$data = "db ";
$user = "root";
$password = "";
$cnnection = mysql_pconnect($host , $user , $password ) or die(mysql_error());
mysql_select_db($data , $cnnection );
$sql = "Select * from Table ";
$cmdSQl= mysql_query($sql , $cnnection ) or die(mysql_error());
$rst = mysql_fetch_assoc($cmd);
$rec = mysql_num_rows($cmd);
echo "<form method=\"POST\" action=update.php\"?">\n";
$cu=0;
echo " <table border=\"0\" =\"100%\">\n";
do{
$cu=$cu+1;
echo "<tr>\n";
echo "<td><input type=\"****\" value='".$rst[field1]."' ='a$cu' size=\"30\"></td>\n";
echo "<td><input type=\"****\" value='".$rst[field2]."' ='b$cu' size=\"30\">\n";
echo " <input type=\"hidden\" value='".$rst[field_id]."' ='hid$cu' >";
echo "</td></td>\n";
echo " </tr>\n";
}while ($rst=mysql_fetch_assoc($cmdSQl));
//hiddens
echo "<tr>\n";
echo "<td colspan=2>";
echo "<input type=\"hidden\" value='$rec' ='rec_count' >\n";
echo "</td>\n";
echo "</tr>\n";
//end hiddens
echo "<tr>\n";
echo "<td><input type=\"submit\" style='padding:0 20px;' value='حفظ' ='submit' ></td>\n";
echo "<td></td>\n";
echo "</tr>\n";
echo " </table>\n";
echo "</form>";
ضع هذا الكود في الصفحة index.php عـلى سـبيل المثــال .