النتائج 1 إلى 5 من 5

الموضوع: إن كان هناك مبرمجين في سوالف، فأثبتوا ذلك هنا

  1. #1

    إن كان هناك مبرمجين في سوالف، فأثبتوا ذلك هنا



    السلام عليكم..

    أنا في هذا الموضوع أطلب المساعدة من معشر المبرمجين الذين يستطيعون كتابة أو صنع أكواد للـMySQL

    الآن :
    1 - المشكلة : لي منتدى به أعضاء كثيرون، وهناك عضو تصل عدد مشاركاته إلى فوق الـ500، وحذفه أحد المشرفين عن طريق الخطأ...
    بدون أن يجعل مشاركات العضو منسوبة لـGuest
    وبذلك بعد الحذف تكون كل المواضيع التي شارك بها هذا العضو قد دمرت
    (لم يمحى منها أي شيء ولكن المنتدى لا يستطيع فتح الموضوع لأن بياناته غير متوافقة)
    عند فتح قاعدة البيانات تكون المشاركات والمواضيع التي شارك بها هذا العضو كلها منسوبة للـuserid رقم 0

    أنا أعرف حلاً للمشكلة لكن الطلب ليس في الحل إنما في طريقته..

    2 - الحل : أضيف اسم جديد بنفس اسم القديم، ثم أحرر جميع المشاركات والمواضيع التي شارك بها من قاعدة البيانات وأجعلها كلها منسوبة للـuserid الجديد وليس 0

    ولكن...
    إن هذا الحل طويل لعضو تصل مشاركاته إلى 500...
    فهل هناك كود معين أو (استعلام) MySQL يقوم باستبدال الأصفار في عمود الـuserid في جدول الـpost إلى عدد آخر؟؟؟؟

    أرجو أن أحصل على الإجابة إن وجد في هذا المنتدى خبير..
    وشكراً






    braheemo88 غير متواجد حالياً


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Apr 2001
    المشاركات
    260


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

    المسألة ليست بالصعوبة التي تتصورها بل بسيطة جدا من ناحية التنفيذ ، بل هي لا تتعدى جملة واحدة تنفذها من خلال سطر الأوامر أو أو phpMyAdmin لكن يتطلب الأمر ضخصا ملما ببنية قاعدة بيانات المنتدى DB strcuture حتى يكون التعديل متوافقا و البيانات بشكل صحيح consistent و طبعا هذا الالمام ليس دليل على اثبات المقدرة البرمجية للشخص ، ولكن افهم انه نوع من التحدي و الاستثارة من قبلك


    لنفرض أن المشاركات موجودة في جدول يدعي posts و ان المستخدمين في جدول يدعى users و ان جدول المشاركات فيه حقل يشير الى اسم الكاتب اسمه user_id و ان الرقم الذي فيه المشكلة هو المستخدم رقم 1000 الجملة هي كالتالي :

    update posts set user_id values (1000) where user_id = 0

    و تحتاج أيضا ان تعدل قيمة رقم المستخدم إلى الرقم المطلوب ..

    ملاحظة : إذا المنتدى يدرج اسم الكاتب في الموضوع بدلا من الرقم فقد يكون هناك لخبطة و يحتاج لها خطوة اضافية.





    و الله اعلم

    أبوأنس





    AbuAnas غير متواجد حالياً

  3. #3

    الشكر الجزيل لك يا أبو أنس



    ولكن بعد مشاركتي السابقة، قلت سأحاول محاولة أخيرة
    قرأت بعضاً من الـDocumentation في موقع الـMySQL وفهمت الفكرة العامة
    ولكن ذلك وحده لم يأت بي للكود المحدد
    فخطرت لي فكرة
    فتحت أحد ملفات الـvbulletin وهو الـuser.php في الـadmin
    وبحثت عن الكود Update
    إلى أن حصلت الكود على هذا الشكل
    UPDATE access SET accessmask='$val' WHERE userid='$userid'
    ففهمت المقصود
    الثوابت هم
    1 - UPDATE
    2 - SET
    3 - WHERE
    (ويمكن إضافة AND أيضاً)
    أما المتغيرات
    1 - access : هو اسم الجدول المراد
    2 - accessmask : هو العمود المراد في الجدول السابق والقيمة التي بعد = هي القيمة المراد الوصول إليها (الجديدة)
    3 - userid : هنا في الكود السابق WHERE يمكن إزالتها، فهي فقط لتحدد مكان الكود المراد تغييره، فإذا زالت تغيرت جميع الكودات في العمود السابق، أي الآن userid تحدد بالقيمة التي بعد = الموقع (الفلكي) المراد تغييره

    فمعنى الكود السابق:
    غير جدول الـaccess في العمود accessmask إلى 'القيمة' بالتحديد موقع للـuserid 'القيمة'

    وأشكرك مرة ثانية أبو أنس






    braheemo88 غير متواجد حالياً

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Apr 2001
    المشاركات
    260


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

    عفوا في جملتي خطأ بسيط يجب أن تكون

    update posts set userid=1000 where userid=0

    يجب ان تستخدم جزء where حتى يطبق التحديث فقط على السجلات التي رقم المشتخدم فيها يساوي صفر ، وهي السجلات التي يراد تغييرها فقط ..


    أبوأنس





    AbuAnas غير متواجد حالياً

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2001
    المشاركات
    808


    جرب هذا الطريقه


    ******************

    اضف عضو جديد عن طريق لوحه التحكم ... سيكون رقم id الخاص سيكون حسب التسلسل الموجود لديك ( عدد الاعضاء لديك في المنتدى يبلغ مثلا 1000 سيكون رقم id في العاده 1001 ) من الافضل وضع بريدك الشخصي لانك ستحتاجه اذا كان المنتدى مشفر وذلك لارسال كلمه المرور اليك .



    الان توجه الى phpMyAdmin وقم بفتح قاعده البيانات الخاصه بالمنتدى


    تحتاج الان الى معرفه رقم id للعضو المحذوف .. وذلك بواسطه اي موضوع خاص به (( ستجد عناوين المواضيع في table thread ))
    عند رؤيتك للموضع المطلوب اضغط على edit رقم id ستجده امام postuserid



    الان وبعد ان عرفت رقم id لعضو المحذوف توجه الى جدول user
    وافتح بيانات العضو الجديد اللذي اضفه سابقا وذلك بالضغط على edit امام اسمه ... وقم بتغيير رقم id الخاص به وتجده في اول مربع امام userid الى رقم الاي بي الخاص بالعضو المحذوف .


    انتهى





    __________________
    http://www.pl2004.com
    GHOST غير متواجد حالياً





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

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