• 0

PHP | عمل get للعناصر القادمة من الdatabase بطريقة مختلفة

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

عندي موقع لعرض الاخبار... يتم كتابة المقالة في لوحة التحكم وارسالها لقاعدة البيانات ويتضمن محتوى المقالة (العنوان, المحتوى, صورة المقالة, القسم, الكلمات المفتاحية) ويتم ارسال عنوان id الكاتب تلقائيا داخل صف المقالة عن طريق ارسال id الحساب المسجل حاليا للكاتب. وعندي جدول آخر للكاتبين يتضمن الاسم والصورة والوصف ورقم id 

في لوحة التحكم أريد عرض جميع مقالات الموقع عن طريق: 

$get_articles_q = $connection->prepare("SELECT title, image, date, author FROM articles ORDER BY id DESC LIMIT 12");
$get_articles_q->execute();
$get_articles_d = $get_articles_q->fetchAll();

ويتم عمل loop داخل $get_articles_d لجلب جميع المقالات.

من ضمن مجلوبات هذه الكويري وهو author الذي يحتوي على id الكاتب..... واريد عرض اسم وصورة الكاتب عل كل مقالة بدلا من كتابة رقم الid الخاص به

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

فهل من حل؟

إذا لم تفهم من فضلك إسألني في التعليقات

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


رابط هذه المساهمة
  • 0

حسب ما فهمت تريد عرض معلومات من جدول author مع المقالات

يمكن عمل ذلك بإستخدام left join في أمر الإستعلام.

 

SELECT articles.title, articles.image, articles.date, articles.author, author.name, author.photo
FROM articles 
LEFT JOIN author ON articles.author = author.id
ORDER BY id DESC LIMIT 12

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

بالتوفيق أخي.

 

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


رابط هذه المساهمة
  • 0

أنت قمت بوضع id  الكاتب أي  foreign key  في جدول ال author , عليك عمل جملة إستعلام  للبحث عن id الكاتب في الجدول الخاص به  (الكاتبين )  وتقوم بأخذ إسمه   .

 

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


رابط هذه المساهمة
  • 0

تقنيا وحتى تبرمج بطريقة إحترافية يجب عليك أن تقوم بربط جدول articles بجدول authors وذلك من خلال إضافة التحديث التالي على جدول articles في قاعدة البيانات:

ALTER TABLE articles
ADD FOREIGN KEY (author_id) REFERENCES Authros(id);

حيث أن author_id عبارة عن column جديدة في جدول articles هي من تربط جدول articles بجدول authors

وبعدها فقط ستحتاج لل inner join في الإستعلام على PHP بالشكل التالي:

SELECT *
FROM articles
INNER JOIN authors
WHERE articles.author_id = authors.id;

ليصبح الإستعلام على الشكل التالي في كود PHP:

$get_articles_q = $connection->prepare("SELECT * FROM articles
INNER JOIN authors WHERE articles.author_id = authors.id ORDER BY articles.id DESC LIMIT 12");
$get_articles_q->execute();
$get_articles_d = $get_articles_q->fetchAll();

تحياتي.

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


رابط هذه المساهمة
  • 0

عليك تضمين id المؤلف مع المقالة في قاعدة البيانات للمستخدم المسجل (و تأكد من عمل insert  لـ id عند إضافة مقالة )

اتبع الخطوات هنا:

// add id to query and the DB table
$get_articles_q = $connection->prepare("SELECT id, title, image, date, author FROM articles ORDER BY id DESC LIMIT 12");
$get_articles_q->execute();
$get_articles_d = $get_articles_q->fetchAll();



loop on $get_articles_q  {
    // GET auther info
	// id = $get_articles_q[index].id;
	$get_author_q = $connection->prepare("SELECT name, image FROM author where id = my_id");
	$get_author_q->execute();
	
	//TODO
	//merge your data

}

بالتوفيق

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


رابط هذه المساهمة

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

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

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


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

تسجيل الدخول

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


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