اذهب إلى المحتوى

السؤال

نشر (معدل)

 

<?php  
	$title = 'shop';
	include 'init.php'; 
	
	echo "<div class='container'>";
		// here print all items for all category if there were items found in home page 
				echo "<div class='cat_items'>"; // inner container for main page
				// here print the query of the items
				$stmt = $db->prepare(" SELECT items.*, cat.Name AS cat_name
													FROM items
													INNER JOIN cat
													ON items.Cat_ID = cat.ID
													ORDER BY Cat_ID ");
				$stmt->execute();
				$result = $stmt->fetchAll();
				
				foreach($result as $data)
				{
					echo "<div class='cat_content'>"; // content of the category
						
						echo "<h1  style='background-color:#b35900; color:#fff;'>" . $data['cat_name'] . "</h1>"; // name of the category
						echo "<input type='button' value='see more'>";
						
							echo "<div class='items_content'>"; // content of the item
										echo "<img src='design/img/shop.png'>";
										echo "<h2>" 		. 		$data['Name'] . "</h2>"; // name of the item
										echo "<p>" 		. 		$data['Description'] . "</p>"; // description of the item
										echo "<span>" 	. 		$data['Status'] . "</span>"; // rate of the item
										echo "<br>";
										echo "<span>" 	. 		$data['Price'] . "</span>"; // price of the item
							echo "</div>"; // items_content
					echo "</div>"; // cat_content
				}
				
				echo "</div>";  // cat_items
	echo "</div>"; // container
	
	include $tpl . 'footer.php'; 
?>

6012879fafd71_Screenshot_2021-01-28shop(1).thumb.png.37ae7de9982e635358885abb88912908.pngCapture_2021_01_28_11_16_19_7.jpg

 

Screenshot_2021-01-28 localhost 127 0 0 1 shops items phpMyAdmin 4 8 5.png

Screenshot_2021-01-28 localhost 127 0 0 1 shops cat phpMyAdmin 4 8 5.png

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

زي ما انتو عارفين ان دالة fetchAll() بتعمل جلب لجميع البيانات اللي في الجدول وبالتالي لازم استخدم loop عشان يطبع كل البيانات اللي انا محتاجها

والاشكالية انه كرر اسم القسم (Categray Name) مع كل منتج مرتبط بيه في جدول (items) 

المطلوب عايز العميل يشوف اسماء المنتجات تحت كل قسم بشكل جماعي طالما هناك علاقة بين جدول الاقسام وجدول المنتجات 

 

 

تم التعديل في بواسطة Mahmoud Plus

Recommended Posts

  • 0
نشر

هل يمكنك إرفاق الكود هنا؟ 

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

SELECT DISTINCT columns
FROM tbl;

يجب إضافة الأمر DISTINCT بعد كلمة SELECT في الاستعلام.

يمكنك أيضا قراءة المزيد عن هذا الأمر المستخدم من خلال توثيق SQL في موسوعة حسوب هنا.

إما اذا كنت تقصد غير ذلك الرجاء توضيح السؤال.

  • 0
نشر
بتاريخ 58 دقائق مضت قال بلال زيادة:

هل يمكنك إرفاق الكود هنا؟ 

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


SELECT DISTINCT columns
FROM tbl;

يجب إضافة الأمر DISTINCT بعد كلمة SELECT في الاستعلام.

يمكنك أيضا قراءة المزيد عن هذا الأمر المستخدم من خلال توثيق SQL في موسوعة حسوب هنا.

إما اذا كنت تقصد غير ذلك الرجاء توضيح السؤال.

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

بشكل جماعي وليس بشكل فردي كما في الصورة

بلال.png

بتاريخ الآن قال Mahmoud Plus:

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

بشكل جماعي وليس بشكل فردي كما في الصورة

بلال.png

عايزها تكون بالشكل ده في الصفحة الرئسية 

Screenshot_2021-01-28 تطبيقات Windows - متجر Microsoft.png

بتاريخ منذ ساعة مضت قال بلال زيادة:

هل يمكنك إرفاق الكود هنا؟ 

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


SELECT DISTINCT columns
FROM tbl;

يجب إضافة الأمر DISTINCT بعد كلمة SELECT في الاستعلام.

يمكنك أيضا قراءة المزيد عن هذا الأمر المستخدم من خلال توثيق SQL في موسوعة حسوب هنا.

إما اذا كنت تقصد غير ذلك الرجاء توضيح السؤال.

Capture_2021_01_28_11_16_19_7.thumb.jpg.bc97fda18ca32f5a5d2658539020638b.jpg

بتاريخ 1 ساعة قال بلال زيادة:

هل يمكنك إرفاق الكود هنا؟ 

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


SELECT DISTINCT columns
FROM tbl;

يجب إضافة الأمر DISTINCT بعد كلمة SELECT في الاستعلام.

يمكنك أيضا قراءة المزيد عن هذا الأمر المستخدم من خلال توثيق SQL في موسوعة حسوب هنا.

إما اذا كنت تقصد غير ذلك الرجاء توضيح السؤال.

لم تنجح طريقة الامر DISTENCT

  • 0
نشر

إن سؤالك هو نفس سؤال هذا الشخص: https://stackoverflow.com/questions/2977213/php-mysql-using-group-by-for-categories

والجواب المقبول يوضح أن ما تريد فعله ليس تغيير تعليمة SQL بل تغيير كود الـphp الذي يتعامل مع نتيجة تعليمة الـSQL.
طبعاً ستحتاج لتغيير تصميم الواجهات لتتوافق مع الخرج الذي تريده.

  • 0
نشر
بتاريخ 2 ساعات قال Mahmoud Plus:

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

بشكل جماعي وليس بشكل فردي كما في الصورة

عايزها تكون بالشكل ده في الصفحة الرئسية 

لم تنجح طريقة الامر DISTENCT

مرحبا مجددا، لم أرى أنك قمت بتعديل السؤال والإجابة هي للسؤال قبل تعديله 

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

class=“id-ثم رقم id” ومن ثم عن طريق css تقوم بإخفاء أي class لا تريد إظهاره  باستخدام خاصية diaplay 

  • 0
نشر (معدل)

ما قلته طبقته بالفعل في صحفة حاصة بالاقسام تدعى (cat.php)

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

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

بتاريخ 2 ساعات قال بلال زيادة:

مرحبا مجددا، لم أرى أنك قمت بتعديل السؤال والإجابة هي للسؤال قبل تعديله 

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

class=“id-ثم رقم id” ومن ثم عن طريق css تقوم بإخفاء أي class لا تريد إظهاره  باستخدام خاصية diaplay 

لو تلاحظ في صورة محرر الاكواد قمت بطباعة الاستعلام في صفحة index.php وهي الصفحة الرئيسية الخاصة بالموقع

تم التعديل في بواسطة Mahmoud Plus
  • 0
نشر
بتاريخ 6 دقائق مضت قال Mahmoud Plus:

ما قلته طبقته بالفعل في صحفة حاصة بالاقسام تدعى (cat.php)

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

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

لو تلاحظ في صورة محرر الاكواد قمت بطباعة الاستعلام في صفحة index.php وهي الصفحة الرئيسية الخاصة بالموقع

هل ممكن ترفق جميع ملفات المشروع كاملا ساعمل على ما تريد؟

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

وتعرض كل استعلام بالترتيب الذي تريده في الصفحة الرئيسية.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...