• 0
mohmadalmasre

مشكلة في طباعة إستعلام من قواعد البيانات

سؤال

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

كيفكم أعضاء المنتدى الكرام 

لدي مشكلة بسيطة حاولت جداً إني أحصل على حل لمشكلتي فأجتهدت وتعبت لكن لا حل 

لذلك أرغب في مساعدة تدلني على فكرة لحل المشكلة

 

 
هذا هو الكود الذي أرغب في تعديله لكي أحصل ع الكود المناسب أرجو مساعدتكم سأقوم بشرحه حتى تتمكنوا من مساعدتي

$get_friend_list = mysql_query("select * from friend_request where res_id='$s_user_id' order by friend_id asc ");###### إحضار أصدقاء العضو نستعلم لكي نحضر الأعضاء الأصدقاء للعضو صاحب السيشن الحالية$num_friend_list = mysql_num_rows($get_friend_list);################## إيجاد النتائجif($num_friend_list == 0){################## إذا كانت النتائج تساوي الصفرecho"لا يوجد لديك أصدقاء بعد";################## إذا كانت النتائج تساوي الصفر}else{while($fetch_friend_list = mysql_fetch_object($get_friend_list)){################# #إذا لم تساوي الصفر طباعة النتائج$sen_id = $fetch_friend_list->sen_id;################# هذا المتغير يحتوي على أيدي الأعضاء الأصدقاء للعضو صاحب الجلسة$get_posts = mysql_query("select * from state where u_id='$sen_id' ");################# الإستعلام عن المنشورات التي وضعها أصدقاء العضو أي أصحاب ايدي المتغيرwhile($fetch_post = mysql_fetch_object($get_posts)){################# طباعة النتائج$p_data = $fetch_post->p_data;#### تاريخ المنشور$p_time = $fetch_post->p_time;### وقت المنشور$p_img = $fetch_post->p_img;### صورة المنشورif($p_img == ''){$p_img_img = "";### إذا كانت الصورة فارغة لا تكتب صورة}else{$p_img_img = "";############ مش مهم مسحته ليعمل الموضوع }$p_post = $fetch_post->u_p;### المنشور$p_user = $fetch_post->u_id;### ايدي العضو صاحب المنشور$fet_user_list = mysql_query("select * from user1 where user_id='$p_user'");### إستعلام عن معلومات العضو صاحب ايدي العضو صاحب المنشورwhile($fetch_user_list = mysql_fetch_object($fet_user_list)){$user_f_name = $fetch_user_list->fname;### الإسم الأول$user_s_name = $fetch_user_list->sname;### الإسم الثاني################### طباعة النتائج في جدولecho"$user_f_name $user_s_name$p_time $p_data$p_post$p_img_imgتعليق";}}}}?>   

هذا الكود يطبع لي النتائج هكذاً 

 

oou10.jpg

 

 

 

المشكلة أن الإستعلام يجلب النتائج لكل عضو بشكل مباشر  أي أنني في الإستعلام الأول أطلب طباعة أيدي الأعضاء الأصدقاء 
وفي الثاني أطلب إستعلام المنشورات التي تحمل أيدي العضو الذي جائنا في الإستعلام الأول 
وبهذه الطريقة يأتيني منشورات عضو بشكل كامل ثم يتحول إلى عضو أخر 

 

أما الطريقة التي أرغب فيها هي جلب منشورات الأصدقاء بحسب ترتيب إدخاله إلى قاعدة البيانات 
كما موضح في الصورة ترتيب تنازلي يأتيني بالمنشور الثالث المدخل إلى قاعدة البيانات في البداية  لأن أيدي العضو موجود أولاً 
ولا يأتيني بحسب  ترتيب المنشور في جدول المنشورات  هل وصلت الفكرة ؟

أي أرغب بأن تأتيني المنشورات في الإستعلام الثاني  بحسب ترتيب المنشورات 
ولم تنجح فكرة ترتيبهم حسب أيدي المنشور أو ما إلى ذلك والأغلب المشكلة في الإستعلام الأول 

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

تم تعديل بواسطه مصطفى 36a2
إضافة وسم الكود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

10 إجابة على هذا السؤال .

  • 0

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

يوجد أيقونة بهذا الشكل code.png?t=3dd166d83264b9d7b7755bb8f6e4f فى محرر الموضوع, تستخدم لإضافة الكود بشكل صحيح للتسهيل على باقى الاخوة من مراجعة موضوعك .

تم تعديل بواسطه مستر برمجة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تم تعديل المشاركة أخي مستر برمجة

أخي الكريم mohmadalmasre حاول تنسيق المشاركة في المستقبل ليزداد عدد المشاركين بفعالية ..

وفقك الله :)

أرجو أن تجد الإجابة المناسبة لسؤالك

 

والله ولي التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لتسهيل الامور يجب ان اكون اكثر احترافية , الاستعلامات جيدة ولكن يمكن اختصارها في استعلام واحد اخي الفاضل

حاول الاستعلام عن اكثر من جدول مرة واحدة

لاحظ هنا ما الذي يلزمنا

1- العضو الحالي

2- الاعضاء الاصدقاء له

3- المنشورات للاعضاء حسب الترتيب الزمني

4- عدد المنشورات المراد عرضها !؟؟ لم ارك تتطرق اليها ولكن يجب ان تضعها في الحسبان

 

لذلك يجب كتابة استعلام يشمل كل هذا البنود دفعة واحدة

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً مرة أخرى أخي 

Hamdan Taim
لكني حاولت بطباعة الإستعلامات بحالتها الحالية عند فشلي في حل المشكلة بإستعلام واحد أو فانكشن وحدة 
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخى العزيز

 

طبعا أنا لم أفهم سؤالك جيدا, لكن كل ما فهمتة أنك عاوز تطبع البيانات بحسب ترتيب المنشورات, يمكن عمل ذلك بالترتيب حسب تاريخ الإضافة, يعنى اعمل الترتيب حسب التاريخ ( ORDER BY date ) وليس بالاى دى .

 

ولو أنا فاهم سؤالك خطأ ياريت توضحة أكثر .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي فيي إجلبهم بحسب التاريخ 
لكن في الإستعلام الأول يوم بطباعة الصديق الأول 
ويطبع كل منشوراته في الثاني 
ثم يعود لكي يطبع أيدي الصديق الثاني 
ويطبع بعدها منشوراته 
حتى لو كانت منشورات الأول موضوعة قبل أو بعد الثاني 

بمعنى ينتهي من منشورات الأول ثم ينتقل إلى الثاني ولا ينظر إلى طلبي للمنشورات حسب التاريخ 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

post_user
يحتوي على القيم بالترتيب التالي 
1
1
3
4
1
1
هل يمككني تنفيذ الإستعلام عن الأيدي رقم 1 مرة 
ومن ثم يعود لكي ينفذه من جديد للأيدي رقم 1
وبعدها يعود

للرقم 3

وبعدها 4 

ثم يعود للـ 1 أي بالترتيب لا يظهر 

 

ولا يتسعلم لي عن الرقم واحد مرة واحدة في كل الأسطر 
هل وصلت الفكرة ؟ 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ربما السبب الرئيسي لعدم الوصول لحل هو عدم توضيح المشكلة بشكل صحيح , وانا احد الذين لم يدركوا المشكلة لحتى الان سوى انك تريد الاستعلام من اكثر من جدول ,

يهمنا جدا ان نفهم المشكلة بشكل واضح حتى يكون الحل امثلا ً

لذا سأفترض ان هناك جدول للاعضاء اسمه members و جدول اخر للعلاقات بين الاعضاء ( الصداقات ) واسمه relations  و جدول اخر للبوستات او المواضيع واسمه topics

الان سنحاول عرض مواضيع العضو رقم 25 مثلا

$result=mysql_query("select * from topics where member=25 order by id desc");


يبدو جميلا ً

الان دعنا نجلب مواضيع اصدقائه

$friendsPosts=mysql_query("select topics.id, topics.contents , members.name from relations,topics,members where relations.friendof=25 and topics.member=relations.friend and members.id=relations.friend");

// ملاحظة : لم يتم التأكد من صحة الاستعلام لكن نظريا الفكرة هكذا
التفسير:
نستعلم عن جميع المواضيع و الاسماء لاصدقاء العضو 25  

اتمنى ان اكون قد افدت قليلا او انرت لك طريقاً لمزيد من التنوير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا أخوتي تم حل المشكلة عن طريق إعادة هيكلة الكود وتصميمه من جديد شكراً جزيلا لكم وأعتذر عن إشغالكم بالفكرة  :D !!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .