عذرا علي إعادة فتح الموضوع
ولكن لنقدم الفائدة لزوار الموضوع بعد ذلك
تسمي تلك النوعية من السكربتات Scaffold أو السقالة بالعربي
توجد في العديد من اطر العمل المشهورة
وتعمل بمجرد إعطاء اسم الجدول المراد عمل صفحات المعالجة له بكل سهولة
والتقنية بحد ذاتها تسمي CRUD - create, read, update and delete
من تلك السكربتات التي تقوم بتلك المهمة ستجد شرح طريقة عملها هنا
Creating A Scaffold-like Class in PHP or An Automatic CMS For a Table by www.Shadow-Fox.net
كود PHP:
<?php
include("scaffold.php");
new Scaffold("scaffold"); // اسم الجدول
?>
كود PHP:
<?php
class Scaffold {
var $table = "";
function Scaffold($table){
$this->table = $table;
$connection = mysql_connect("localhost",
"username",
"password");
mysql_select_db("database", $connection);
switch($_GET["action"]){
default:
$this->listtable();
break;
case "list":
$this->listtable();
break;
case "new":
$this->newrow();
break;
case "postnew":
$this->postnew();
break;
case "edit":
$this->editrow();
break;
case "postedit":
$this->postedit();
break;
case "delete":
$this->deleterow();
break;
}
}
function listtable(){
$select = mysql_query("SELECT * FROM ".$this->table);
$i = 0;
echo "<table>";
echo "<tr>";
while($i < mysql_num_fields($select)){
$column = mysql_fetch_field($select, $i);
if($column->name != "id"){
echo "<td><b>".$column->name."</b></td>";
}
$i++;
}
echo "</tr>";
while($array = mysql_fetch_array($select)){
echo "<tr>";
foreach($array as $column => $value){
if(!is_int($column) && $column != "id"){
echo "<td>$value</td>";
}
}
?>
<td><a href="?action=edit&id=<?=$array[0]?>">Edit</a></td>
<td><a href="?action=delete&id=<?=$array[0]?>">Delete</a></td>
<?
echo "</tr>";
}
echo "</table>";
echo "<a href='?action=new'>New Row</a>";
}
function newrow(){
$select = mysql_query("SELECT * FROM ".$this->table);
$i = 0;
echo "<form action='?action=postnew' method='POST'>";
while($i < mysql_num_fields($select)){
$column = mysql_fetch_field($select);
if($column->name != "id"){
if($column->blob == 1){
echo "<b>$column->name:</b> <textarea name='$column->name'></textarea><br />";
}
else {
echo "<b>$column->name:</b> <input type='text' name='$column->name' /><br />";
}
}
$i++;
}
echo "<input type='submit' value='Add Row' />";
echo "</form>";
}
function postnew(){
$select = mysql_query("SELECT * FROM ".$this->table);
$insert = "INSERT INTO ".$this->table." VALUES('', ";
$i = mysql_num_fields($select);
$i--;
foreach($_POST as $key => $value){
$i--;
if($i > 0){
$insert .= "'".$value."', ";
}
else {
$insert .= "'".$value."')";
}
}
mysql_query($insert) or die(mysql_error());
echo "Added row.<br />";
echo "<a href='?action=list'>Back To Listing</a>";
}
function editrow(){
$fields = mysql_query("SELECT * FROM ".$this->table) or die(mysql_error());
$select = mysql_query("SELECT * FROM ".$this->table." WHERE id = ".$_GET["id"]) or die(mysql_error());
$row = mysql_fetch_row($select);
$i = 0;
echo "<form action='?action=postedit&id=".$_GET["id"]."' method='POST'>";
while($i < mysql_num_fields($fields)){
$field = mysql_fetch_field($fields);
if($field->name != "id"){
if($field->blob == 1){
echo "<b>$field->name:</b> <textarea name='$field->name'>".$row[$i]."</textarea><br />";
}
else {
echo "<b>$field->name:</b> <input type='text' name='$field->name' value='".$row[$i]."' /><br />";
}
}
$i++;
}
echo "<input type='submit' value='Edit Row' />";
echo "</form>";
}
function postedit(){
$select = mysql_query("SELECT * FROM ".$this->table." WHERE id = ".$_GET['id']);
$num = mysql_num_fields($select);
$update = "UPDATE ".$this->table." SET ";
$i = 1;
while($i <= $num){
$column = mysql_fetch_field($select);
if($column->name != "id"){
if($i != $num){
$update .= $column->name." = '".$_POST["$column->name"]."', ";
}
else {
$update .= $column->name." = '".$_POST["$column->name"]."' WHERE id = ".$_GET['id'];
}
}
$i++;
}
mysql_query($update) or die(mysql_error());
echo "Edited row.<br />";
echo "<a href='?action=list'>Back To Listing</a>";
}
function deleterow(){
mysql_query("DELETE FROM ".$this->table." WHERE id = ".$_GET["id"]) or die(mysql_error());
echo "Annihilated row.<br />";
echo "<a href='?action=list'>Back To Listing</a>";
}
}
?>