صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 18

الموضوع: كيف أعيد ترتيب الحقل id بعد حذف ما قبله

  1. #1

    Smile كيف أعيد ترتيب الحقل id بعد حذف ما قبله



    السلام عليكم و رحمة الله و بركاته

    أقوم ببرمجة سكربت به مقالات .

    عند وضع مقالتين الأولى id=1 و الثانية id=2 .

    أقوم بحذف الأول id=1 و المقالة الثانية يبقى ترتيبها id=2 و الثالثة id=3 و الأولى id=1 غير موجودة بقاعدة البيانات .

    كيف أجعلها تلقائيا تعيد الترتيب ؟

    و شكرا .

    أخوكم ياسر .





    __________________
    حسابي على الفيسبوك : Jelti Yassir لا تنسوني من صالح دعائكم (^_^)


  2. #2


    إعادة ترتيب المقالات ليس بالأمر الضروري بل و لا يجب أن يتم لأنه لابد أن يكون لكل مقال رقمه الخاص الذي لا يتغير بعد ذلك


    لكن إذا أردت هناك حل و هو حذف الحقل id و إنشائه من جديد و إعاده ضبط قيمة ال auto_increment بحيث تساوي آخر قيمة للـ id + واحد





    __________________
    حازم نور
    http://about.me/Hazem

  3. #3

    Smile



    شكرا جزيلا لك أخي Hazem Noor .

    بارك الله فيك و في علمك و نفع بك . آمين

    أخوكم ياسر .





    __________________
    حسابي على الفيسبوك : Jelti Yassir لا تنسوني من صالح دعائكم (^_^)

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2008
    المشاركات
    324


    لكن ماذا لو ان القيمة id +1

    غير موجودة بقاعدة البيانات ؟؟؟ نفس المشكل

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


    فكيف يتم ذلك الرجاء الرد؟






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2005
    المشاركات
    359


    اذا كانت القضية قضية الترقيم اي انك تريد ان تكون الاخبار

    1

    2

    3

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

    مثال

    كود PHP:

     

     $test
    =0;

    while (
    $line mysql_fetch_array($result))

    {

           
    $test++;

    echo 
    $test;


    الفكرة هي انك تعطي المتغير

    كود PHP:
    $test=0
    قيمة صفر خارج حلقة التكرار

    ثم داخل حلقة التكرار تجعله يزيد واحد بهذه الطريقة

    كود PHP:
    $test++ ; 
    بحيث كل دورة يزداد واحد

    ثم في النهاية تطبعه بامر

    كود PHP:
    echo$test
    سوف يطبع لك

    1

    2

    3

    على حسب عدد سجلاتك






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    283


    كود PHP:
    $result mysql_query("SELECT id, name FROM articles_table");
    $i 1;
    while (
    $row mysql_fetch_array($result)) {
        echo 
    'المقال رقم: '.$i.'<br />';
        echo 
    'ID: '.$row['id'].' - Name: '.$row['name'].'<br /><hr />';
        
    $i++;







    __________________
    اللهم وفقني لما تحبه وترضاه...

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2008
    المشاركات
    324


    للاسف اخ مهتم ليست مثالية ارجو من خبراء php التدخل






  8. #8
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    291


    الموضوع ليس له علاقة بال php
    السؤال هنا عن قواعد البيانات RDBs

    على اي حال تغيير primary keys خطأ... اذا تحتاج ترتيب مثل ما ذكر الاخوان انشئ حقل جديد واستخدمه للترتيب

    اقرأ عن primary keys اكثر و بعد ما تفهم الفكرة ورائها راح تستوعب النظرية خلفها






  9. #9


    أخي يجب الا تعدل في أرقام البرايمري كي مطلقاً لانه مربوط بجداول أخري او عرضها في السكربت يأتي للمقالة بواسطتها

    يعني لو أعدنا ترتيب عضويات الأعضاء في سوالف سوفت أصبح الرابط اللي يرسل لعضويتك يرسل لعضو أخر
    والموضوع المكتوب بإسمك صار بإسم عضو أخر
    ومشاركاتك صارت لعضو أخر

    وهكذا

    لا تتلاعب بها إلا لو كنت تدري التحليل للداتا بيز لديك وتود نقل السكربت والبدء من جديد علي نظافة
    وقتها انشئ جدول جديد وخذ المحتوي من الأول وأدخله بدون وضع رقم ال id في ال insert لتدخل بالتناوب
    وقتها ستكون الحقول الجديدة بدون فراغات بينية

    تستخدم لدمج القواعد أو إعادة ضبط قاعدة مختربة





    __________________
    السيف أصدق أنباء من الكتب

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2008
    المشاركات
    324


    اظن ان الحلول التي قدمها كل من Mostafa Maher ومهتم ليست سوي ترتيب الارقام علي من1 إلي ما لا نهاية

    لكن ماذا لو حذفنها احد الارقام بالطبع سيظهر خطا ..

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

    كود PHP:
    if(!isset($_GET['id'])) {
        
    header("Location: index.php?id=1");
        } 
    لكن كيف انتقل للرقم التالي مهما كان ترتيبه
    next after ...


    وبهذا نتخلص من ترتيب او إعادة ترتيب

    ارجو من خبراء php التدخل الموضوع فعلا يستحق.






  11. #11
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    283


    اظن ان الحلول التي قدمها كل من Mostafa Maher ومهتم ليست سوي ترتيب الارقام علي من1 إلي ما لا نهاية

    لكن ماذا لو حذفنها احد الارقام بالطبع سيظهر خطا ..

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

    كود PHP:
    if(!isset($_GET['id'])) {
        
    header("Location: index.php?id=1");
        } 
    لكن كيف انتقل للرقم التالي مهما كان ترتيبه
    next after ...


    وبهذا نتخلص من ترتيب او إعادة ترتيب

    ارجو من خبراء php التدخل الموضوع فعلا يستحق.
    حضرتك مكبر الحكاية ليه؟
    الـ ID شيئ ، وترقيم النتائج عند العرض شيئ آخر.

    نفترض أن لديك هذه الـ IDs
    5
    6
    7
    8

    إذا أردت عرضها على صفحتك بناء على ترتيب الـ ID كذلك ترقيمها هيكون بالشكل ده
    المقال رقم 1 ===> ID=5 - رابط هذه المقالة articles.php?id=5
    المقال رقم 2 ===> ID=6 - رابط هذه المقالة articles.php?id=6
    المقال رقم 3 ===> ID=7 - رابط هذه المقالة articles.php?id=7
    المقال رقم 4 ===> ID=8 - رابط هذه المقالة articles.php?id=8

    والترقيم كما سبق سيبدأ من رقم 1 حتى إنتهاء النتائج ، بغض النظر عن الـ ID
    وانظر للروابط هي تحمل الـ ids وليس الترقيم.

    لو حذفت مقالة منهم ولتكن المقال id = 6 هتكون النتيجة كالتالي
    المقال رقم 1 ===> ID=5 - رابط هذه المقالة articles.php?id=5
    المقال رقم 2 ===> ID=7 - رابط هذه المقالة articles.php?id=7
    المقال رقم 3 ===> ID=8 - رابط هذه المقالة articles.php?id=8

    هنا الـ IDs -> 7 ، 8 اختلف ترقيمها لكن الـ ID ثابت لكل منهما- حتى في الرابط.

    بهذا لن تكون هناك روابط غير صحيحة ..

    هذه كل الحكاية --> وصلت الفكرة ؟؟





    __________________
    اللهم وفقني لما تحبه وترضاه...

  12. #12
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2008
    المشاركات
    324


    الفكرة وصلت تمام الاخ ماهر Mostafa Maher

    ماذا لو ان شخص كتب
    articles.php?id=800000

    بالطبع تحتاج لتدخلي السابق اي تحويل للصفحة الاولي او صفحة خطا

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


    علي العموم كما تعلم النظرية تقول إن لم تجد حلا موافقا ( للفكرة التي تريد تمام) إبحث عن حل مثالي.

    والحلول كثيرة بالطبع
    اولها انت لا تحتاج في الغالب للترتيب مثل تدخلك الاخير يشرح ذلك.

    السؤال ماذا لو انك فعلا إحتجت لان تطلب الرقم التالي مهما كان ترنيبه؟

    هنا مكمن الفكرة ومربط الفرس






  13. #13


    أنت من الرابط تجلب رقم المقالة
    تبحث في الداتا بيز لو موجود تظهرها له
    لو غير موجود تظهر له عفواً هذا الرابط غير صحيح
    أو أي شئ

    جرب
    http://www.swalif.net/softs/swalif45/softs2649944447/





    __________________
    السيف أصدق أنباء من الكتب

  14. #14
    عضو فعال جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    3,929


    السؤال ماذا لو انك فعلا إحتجت لان تطلب الرقم التالي مهما كان ترنيبه؟
    هنا مكمن الفكرة ومربط الفرس
    يمكنك تنفيذ جملة السليكت بهذا الشكل للحصول علي رقم المقالة التالية
    كود PHP:
    $id $_GET['id'];
    $sql "SELECT id FROM articles WHERE id > $id LIMIT 1"
    وللحصول علي رقم المقالة السابقة استبدال علامة الاصغر بعلامة الاكبر

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






  15. #15
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    291


    المنطق اذا لم تجد الخبر تعرض له 404 file not found او شيء مثل هذا

    قد يكون دخل عن طريق رابط قديم او bookmark










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض