| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| ما هي طريقة اعادة ترتيب نتائج الاستعلام بهذه الطريقة؟؟ هناك طريقة رائعة وهي تتيح لك اعادة ترتيب نتائج الاستعلام كما تريد للتوضيح كالتالي : لنفرض ان لدينا استعلام select من قاعدة البيانات وسيعرض لنا الاسماء التالية
الان اذا اردنا ان نجعل النتيجة ( ابراهيم) تظهر فوق (علي) و (عماد) يظهر فوق (احمد) وترتيبها كما نريد عن طريق الضغط على رابط لرفع النتيجة بمقدار 1 او خفضها بمقدار 1 ايضا وعادة ما يكون سهمين بجانب النتيجة بحيث تتيح لك عرضها فوق النتيجة التى تليها او تحتها .. علما باني شاهدت هذه الخاصية قبل ذلك لكن لا اذكر اين !! فهل من كود يشرح هذه الطريقة؟
__________________ أخى أنت حر وراء السدود ** أخى أنت حر بتلك القيود إذا كنت بالله مستعصـــمــا ** فماذا يضيرك كيد العبـيـد التعديل الأخير تم بواسطة : مهندس مصرى بتاريخ 10-02-2008 الساعة 03:56 PM. | |||||
|
| |||||
|
بحاول اجيب حل من عندي ![]() قم بانشاء حقل مثلاً feild5 هذا الحقل ياخذ قيمة 1 عند اضافة اول بيانات له بعد كذا عند اضافت اي بيانات جديد راح يزيد +1 بعد كذا عند الاستعراض للبيانات تضع سهم للاعلى قيمته +1 update table set feild5=feild5+1 وضع سهم الاسفل قيمته -1 update table set feild5=feild5-1 طبعاً القيمه هي تحديث للحقل feild5 ان شاء الله وصلت المعلومه واعذرنا اذا صار فيه تقصير | |||||
|
| |||||
|
شكراً لكم على المساعدة .. نعم انا كنت اعلم هذا الحل . لكن هذه ليست المشكلة انما المشكلة بعد تغيير رقم عرض اى عنصر لابد من تغيير عرض العناصر الاخرى كلها يعني مثلا عماد ,,, 1 محمد,,, 2 احمد ,,, 3 علي ,,, 4 الان سنجعل احمد = 1 وهي بسيطة عن طريق عمل update للحقل الذي يوجد به "احمد" الان سيكون لدينا حقلين بنفس القيمة وهي 1 (احمد - عماد) فهل هناك طريقة لتحديث جميع السجلات مرة اخرى باعادة ترقيمها؟ وشكرا لكم
__________________ أخى أنت حر وراء السدود ** أخى أنت حر بتلك القيود إذا كنت بالله مستعصـــمــا ** فماذا يضيرك كيد العبـيـد | |||||
|
| |||||
|
عملت على هذا الامر ووجدت انه يستهلك استعلامات كثيره وتركته الافضل الاستعانه بكلاس يخدم هذا الامر عن طريق الـ xml
__________________ قد اكون مختلف معك في الرأي ولكني مستعد للموت دفاعا عن حقك في ابداء رأيك _________________ رحم الله رجلاً أهداني عيوبي في السر s6ur _________________ للعلم أخواني يستخدم العضويه أكثر من شخص | |||||
|
| |||||
|
بمكن عمل ازاحة للترتيب كالتالي: ان تزيد واحد على الارقام التى اكبر او تساوي الرقم المراد الازاحه اليه تريد ازاحة "علي" الى الرقم 2 يصبح الاستعلام كود PHP: كود PHP: كود PHP:
__________________ I Love PHP (d4d@hotmail.com) http://www.daif.net/ | |||||
|
| |||||
|
الاستعلام الاول لرفع حقل معين والاستعلام الثاني لتنزيل حقل معين طبعا في البداية نستعلم من قاعدة البيانات عن قيمة الحقل المراد زيادته او انقاصه وبنائا عليه نقوم بزيادة او انقاص الحقول المجاوره له كود PHP: كود PHP: | |||||
|
| |||||
|
أخي الكريم سبق أن واجهت هذه المشكلة مع نظام بسيط لإدارة المحتوى قمت بتطويره سابقا ويدعى راما، الفكر ببساطة أنك لست بحاجة إلى تعديل كافة السجلات، بل العملية ببساطة هي التبديل فيما بين ترتيب السجل الحالي والسجل الذي يسبقه أو يليه فقط بحسب طبيعة العملية هل هي نقل خطوة للأعلى في الترتيب أم خطوة إلى الأسفل، فمثلا إن كان الترتيب الأصلي هو: ID الاسم الترتيب 1 عماد 1 2 محمد 2 3 أحمد 3 4 علي 4 وأردت نقل علي خطوة واحدة للأعلى، فلديك بداية رقم ID الخاص به، فتستطيع الحصول على قيمة ترتيبه وهي 4، ثم تنقص منها مقدار 1 وتنفذ إستعلام بغية الحصول على ID السجل الذي يسبقه في الترتيب، وهو في هذه الحالة السجل 3 الخاص بأحمد بعد ذلك تنفذ إستعلامي تعديل أولهما يعدل قيمة الترتيب للسجل الذي يراد نقله مرتبة واحدة للأعلى وهو سجل علي ذي ID التي قيمتها 4 ويعطى ترتيب أقل بمقدار 1 لتصبح قيمة ترتيبه هي 3. بعد ذلك يتم إجراء إستعلام تحديث آخر على السجل الذي كان يسبقه في الترتيب والذي حصلنا في الخطوة الأولى على قيمة ID الخاصة به وهي 3 (أي سجل أحمد)، على إستعلام التحديث المنفذ أن يعطي قيمة ترتيب تزيد بمقدار 1 عن القيمة الحالية لتصبح 4 لاحظ ضرورة وجود حقل ID للدلالة على السجل المراد تغييره وعدم الإكتفاء بالترتيب كمؤشر إلى السجل وذلك نظرا لأن لأن بعد تنفيذ أو استعلام تحديث سنحصل على سجلين لهما ذات قيمة الترتيب وهي 3 (سجل علي بعد التحديث وسجل أحمد قبل التحديث). إن إجراء العملية الأخرى للنقل خطوة واحدة إلى الأسفل في الترتيب مشابهة جدا لما سبق أن تم شرحه أعلاه، ويمكن استنتاجها بسهولة إعتمادا على شرح الخطوات المعروضة في هذه المشاركة. على كل حال، تحافظ هذه الطريقة على إبقاء أرقام الترتيب متسلسلة دون فراغات فيما بينها مثلما تؤدي إليه بعض الحلول الجزئية التي سبق إيرادها في إجابات بعض الأصدقاء على هذا الإستفسار | |||||
|
| |||||
|
بخصوص نظام راما لإدارة المحتوى لمن لديه فضول الإطلاع، فهو منشور ضمن موقع Sourceforge على العنوان التالي: SourceForge.net: Rama Zaiten CMS | |||||
|
| |||||
|
حياك الله اخي DNSerror وشكرا جزيلا لك على الرد.. هناك مشكلة بسيطة .. مثلا لو كان لدينا فراغ بين سجل نتيجة حذف احد السجلات يعني مثلا لو لدينا سجلات ارقامها كالتالي (5) و (6) و (7) و (8) .. لنفترض انه تم حذف السجل رقم (5) الان اذا اردنا رفع السجل (4) مكان السجل (6) والاستعلام في الاصل انا مفترض ان يزيد 1 يعني سيكون الرقم بعد الرفع هو (5) (بافتراض اني حذفت السجل رقم 5 من قاعدة البيانات). ويتم خفض السجل (6) بمقدار 1 فيكون 5 ايضا ً ! فهل من حل لهذه المشكلة؟ وشكراً لكم مجدداً على المساعدة. بالمناسبة اخي DNSerror انا معجب جدا بالكلاسات التي قمت ببرمجتها وهي كلاسات فى الصميم وممتازة جدا جزاك الله عنا خيراً
__________________ أخى أنت حر وراء السدود ** أخى أنت حر بتلك القيود إذا كنت بالله مستعصـــمــا ** فماذا يضيرك كيد العبـيـد التعديل الأخير تم بواسطة : مهندس مصرى بتاريخ 16-02-2008 الساعة 12:29 AM. | |||||
|
![]() |
| |
| |
| أدوات الموضوع | |
| |
المواضيع المتشابهه | ||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| لدي قاعدة بيانات طلاب mysql ماهي طريقة الاستعلام | topacts | PHP | 12 | 18-08-2005 04:11 AM |
| ممكن شرح طريقة " اعادة ترتيب الاقسام"؟؟؟ | elkaser | PHP | 1 | 31-01-2005 02:20 PM |
| اهل يوجد طريقة لعرض اوك 5 نتائج من قواعد البيانات بطريقة و بعد ال 5 عرض 20 نتيجة بطرق | elkaser | PHP | 20 | 01-10-2004 05:41 PM |
| ممكن طريقة اعادة عضو تم حذفه | GAME^OVER | إصلاح وصيانة المنتديات | 2 | 21-09-2004 10:50 AM |
| ماهي طريقة حذف التكرار من نتائج الاستعلام ؟ | abu_salman | تطوير الويب | 4 | 21-12-2002 06:31 AM |