• 0

إنشاء رقم مميز لترقيم الصفوف في قاعدة البيانات - PHP

كيف يمكنني ان انشئ رقم مميز يبدأ من 1 لكل صف في الجدول ويتغير مع التغيير في الجدول؟ فمثلا اذا كان لدي ثلاثه صفوف 1 2 3 وحذفت الصف الثاني فيصبح الصف الثالث هو رقم 2 

ويتخزن الرقم في الدتا بيس php

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

أفهم أنك تريد إعادة إعداد الترتيب التلقائي بعد حذف أي صف في قواعد البيانات . 

مثلا : 

| id | name | 
| -- | ---- |
| 1  | jhon |
| 2  | hsoub|
| 3  | ahmed|
| 4  | ola  |
| 5  | walid|

ثم قمت بحذف الصفين باﻷسماء jhon و hsoub تكون الصفوف مرتبة كالتالي : 

| id | name | 
| -- | ---- |
| 1  | ahmed|
| 2  | ola  |
| 3  | walid|

طبعا يمكنك إعادة الترتيب بعد كل حذف على هذا النحو : 

ALTER TABLE products AUTO_INCREMENT=1;

غير أن هذا اﻷمر أو أي تعديل ثان على صف المعرف غير مقترح عمله ﻷن أي تعديل بالمعرف الخاص بالصف سيؤدي إلى خرب علاقاته مع الجداول الأخرى ,كما أن هذا لن يقوم بترتيب الصفوف اعتبارا للصفوف التي تم حذفها , وإنما يقوم بتجنيبك مشكلة إدراج صفوف جديدة بترتيبات قد تم حذفها بالفعل (مثال : قمت بحذف الصف الأخير بالترتيب 6 , أريد من الصف التالي أن يأخذ الترتيب 6 لا 7 ) .

عوضا عن ذلك يمكنك قراءة البيانات بشكل عادي من قاعدة البيانات دون أي تعديل عليها , ثم على مستوى الـ PHP سيتم إضافة عمود ترتيبي لقراءة الصفوف مرتبة بدون المساس بالمعرف id أو أي صف ثان .

سيكون الأمر مشابها للتالي : 

نقوم بجلب كل المنتجات (مثلا) من قواعد البيانات و نضيف لكل صف رقما مميزا مرتبا على هذا النحو : 

<?php

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "db";

// إنشاء إتصال
$conn = new mysqli($servername, $username, $password, $dbname);

// التحقق من الإتصال
if ($conn->connect_error) {
  die("فشل الإتصال :" . $conn->connect_error);
}

// إنشاء إستعلام
$sql = "SELECT * FROM products";

// تنفيذ الإستعلام
$result = $conn->query($sql);
$products = [];

if ($result->num_rows > 0) {
  // إضافة عمود مرتب لكل صف 
  $i = 1;
  
  while($row = $result->fetch_assoc()) 
  {
    $row['special_number'] = $i;
    
    array_push($products ,$row);
    
    $i++;
  }
  
} 

// => return $products

// إغلاق الإتصال 
$conn->close();
?>

لاحظ أن العملية مرنة أكثر من تعديلك لصف معين بقاعدة البيانات بعد كل تعديل على أي صف . فيمكنك تعديل بداية الترتيب و التحكم فيه , كما أنه أيضا يمكنك التحكم في ترتيب الصفوف التي جلبها من قاعدة البيانات عن طريق الإستعلام ORDER BY . 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن