السلام عليكم
أريد أستعلام لموقع أخبارى يعرض أحدث الأخبار لاكن من كل قسم 5 أخبار
كود PHP:
table -> setions
- id
- time
- name
------------
table -> articles
- id
- time
- id_section
- name
السلام عليكم
أريد أستعلام لموقع أخبارى يعرض أحدث الأخبار لاكن من كل قسم 5 أخبار
كود PHP:
table -> setions
- id
- time
- name
------------
table -> articles
- id
- time
- id_section
- name
تعليمة سكول كهذه ستكون معقدة جدا
سأنتظر حتي يكتبها لك عضو وأستفيد منها ثم أخبرك بطريقة تستفيد منها من الكاش في هذه التعليمة الثقيلة
__________________
السيف أصدق أنباء من الكتب
صراحة هذا الاستعلام حيرني:con2: في انتظار حل احد الاخوة
التعديل الأخير تم بواسطة mr_m ; 13-04-2009 الساعة 12:51 AM
__________________
محمد حمود.
بشكل سريع .. لم اجربه ..
نستعلم عن الاقسام بشكل تصاعدي وفي كل قسم نستعرضه ، نستعلم عن الاخبار الخاصة بالقسم بشكل تنازلي ..ونحدد بـ 5 نتائج ...
بالتوفيق ،،،
كود PHP:
<?php
include("config"); // ملف الاتصال
$sql_cat = mysql_query("select * from sections order by id ASC"); // يستعلم عن الاقسام
$num_cat = mysql_num_rows($sql_cat);
$f = 0;
while($f < $num_cat )
{
$row_cat = mysql_fetch_array($sql_cat);
echo"<a href="newscat.php?catid='.$row_cat[id].'">'.$row_cat[name].'</a>";
$sql_news = mysql_query("select * from articles where id_setcion=$row_cat[id] order by id desc limit 5"); // الاستعلام عن الاخبار
$num_news = mysql_num_rows($sql_news);
$count_news = 0;
while($count_news < $num_news)
{
$row_news = mysql_fetch_array($sql_news);
echo '<a href="news.php?newsid='.$row_news[id].'">'.$row_news[name].'</a><br />';
$count_news++;
}
$f++;
}
?>
__________________
أخي [ محمد الفارس ] في كل رد اقول .. شكراً لك ...
البانر.نت .. نصنع من الافكار دليل
أخي albanner
هل تدري معني الكارثة التي كتبتها أخي ؟
لو كان ذلك لكتبتها له علي الفور بدون أية مشكلة
تخيل لو لديه 50 قسم فما كتبته سيحدث ما قيمته 51 تعليمة سكول !!!!!!!!!!!!!!!!!!!!!!!
لو ما كان ليها حل علي الأقل أخي أختر أخر 100 مقالة وبالمصفوفات تعامل معها وخذ من كل قسم 5 ولو كان أقل لا يهم
لن تكون دقيقة ولكن ستكون أقرب من الدقة
وننتظر محترفي السكول فأكيد لها حل في تعليمة واحدة بإستخدام الشروط في التعليمة
ولكنها تحتاج لشخص دارس قواعد بيانات ومتمكن منها
__________________
السيف أصدق أنباء من الكتب
أخى albanner لو كان طريقة الحل كدة فكانت محلولة طريقتك هذة توقع اتعلها سيرفر وشكرآ لمحاولتك
هل حل هذا الاستعلام مستحيل لدرجة ان ولا محاولة فية, ومازلت فى الأنتظار انا و المجروح, mr_m
احتجت لمثل هذا الاستعلام من حوالى 4 شهور و توصلت لحل اعتقد انه الحل الوحيد لهذه المشكلة
الشرح
------------
اولا الاستعلام
$SqlSection = "select * from $Prefix"."AudioSection,$Service"."Category where $Service"."Section.SectionID=$Service"."Category.SectionID and $Service"."Section.SectionID=$SectionID and $Service"."Section.SubFromSectionID=0 and $Service"."Category.SubFromCategoryID=$SubFromCategoryID and $Service"."Category.$Serial<=$SectionDisplayCategoriesLimit $SectionDisplayFilter $CategoryDisplayFilter order by $Service"."Section.$SortBy $SectionDisplaySortOrder,$Service"."Category.$Serial $CategoryDisplaySortOrder";
اهم جزء فى الاستعلام و هو ما يحتاج لشرح
Category.$Serial<=$SectionDisplayCategoriesLimit
استبدل $SectionDisplayCategoriesLimit برقم 5 و ذلك لعرض خمس اخبار من كل قسم
ثانيا يجب اضافة عمود جديد لجدول المقالات لديك يتم تخزين رقم المقالة فيه تسلسلى - اسم هذا العمود فى المثال السابق هو $Serial كما هو ظاهر فى السطر قبل السابق
1
2
3
و هكذا مع كل قسم جديد يجب ان يكون الرقم تسلسلى يبدأ من
1
2
3
و هكذا
-----------
هتقولى ازاى اعمل كده بمجلة
Update
طبعا هتنفذها بعد اضافة اى مقالة جديدة
ملاحظة الجدول
AudioSection
قى المثال السابق سوف تستبدلة بجدول الاقسام لديك
و الجدول
AudioCategory
سوف تستبدلة بجدول المقالات
اتمنى ان تكون وصلت الفكرة
لاى استفسار ممكن تكلمنى من الساعة 11م الى 12م يوميا بتوقيت مصر من خلال الرابط
Live Sales Support
و انا فى خدمتكم
تحياتى
التعديل الأخير تم بواسطة prokhaled ; 16-04-2009 الساعة 06:29 PM سبب آخر: تعدبل
تعليمتك هذه عقدتني أخي
هل تحاول ضرب رقم قياسي في طول المتغيرات
ولما تكثر من إستخدام ال .
سأحاول فهمها فهي مليئة بالأشواك مثل $SectionDisplayCategoriesLimit
__________________
السيف أصدق أنباء من الكتب
السلام عليكم ورحمه الله وبركاته
جرب هذا الإستعلام واخبرنى بالنتيجه ان شاء الله اكون وفقت
الجدول بنيته كالتى
table name artical
artical_id
artical_name
cat_id
كود PHP:
set @cat=null,@number=null;
select artical_id, artical_name
FROM(
SELECT artical_id, artical_name,
@number := IF(IFNULL(@cat, '') = cat_id, IFNULL(@number, 1) + 1, 1) AS bygroup,
@cat := cat_id AS cat
from artical order by cat_id,artical_id desc)
AS last_artical
where last_artical.bygroup <= 5;
__________________
"لا تزولُ قَدَمَا عَبْدٍ يومَ القيامةِ حتى يُسألَ عنْ أربع ٍ عنْ عُمُرِهِ فيما أفناهُ وعنْ جسدِه فيما أبْلاهُ وعنْ مالهِ مِنْ أيْنَ أخذهُ وفيما أنْفَقَهُ وعنْ عِلمِهِ ماذا عَمِلَ بهِ".