نظرة سريعة على مجريات يوم سوالف
بعض التغييرات في أماكن وأسلوب الإعلان في سوالف سوفت

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Oct 2003-
#1 (permalink)  
عرض الاقسام الفرعية بهذا الشكل؟


السلام عليكم
اخواني اهل سوالف .. اهل الكرم
عندي جدول مكون من ثلاثة اعمدة
id,parentid,title
بالطبع يستخدم في عرض اقسام واقسام متفرعه منها الى مالانهاية وقد نجحت في طريقة الوصول للاقسام الفرعية والمتفرعه الخ..
اذا كنت وصلت مثلا الى المستوى السادس فكيف يمكننى عرض اسماء الاقسام بالتسلسل مثل "سوالف سوفت > لغات البرمجة > لغات برمجة المواقع > اسم الموضوع "؟؟






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 01-10-2006, 12:08 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Oct 2003-
#2 (permalink)  

لقد توصلت الى الحل بفضل من الله
واشكر الاخ المهمه 9 بالرغم من انى لم اطبق فكرته






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 02-10-2006, 03:59 AM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Feb 2002-
#3 (permalink)  

اتمنى تعطينا الحل وتطبق الفكره اخي الكريم






__________________
مؤسسة المهمات البرمجية
00966507585887
0507585887


www.mr-php.com.sa
www.mr-php.com
المهمة9 غير متواجد حالياً   قديم 02-10-2006, 04:35 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2004-
#4 (permalink)  

الرجاء وضعها هنا لتعم الفائدة على الجميع اخي وجزاك الله خيراً






__________________
:: فـريـق الـزيـنـي :: الزيني للإستضافة ::
:: نحن مختلفون :: We Are Different ::
للإتصال بي
http://mossabalzeeny.arabform.com
almosmm غير متواجد حالياً   قديم 02-10-2006, 05:21 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Oct 2003-
#5 (permalink)  

السلام عليكم
الفكره التى كنت ابحث عنها .. كيف اعرض شجرة الاقسام بهذا الشكل وباجراء استعلام واحد فقط يكرر نفسه اذا لم يتحقق شرط معين
بافتراض ان رقم القسم الرئيسي =200
كود:
<table ><tr><?

for($pp=$parent;$pp!=200;){
   $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ")
or die("can't get the table");
 $rows=mysql_fetch_array($shows);
   $pp=$rows[ParentID];
 echo "<td>..<a href='subj.php?view=subj&subid=$rows[ID]&subpartid=$rows[ParentID]'>$rows[Title]</a></td> ";
} ?></tr></table>
لقد قمت باستخدام الجدول لكي اعرض شجرة التصنيف بالشكل الصحيح اي
سوالف سوفت > لغات البرمجة > لغات برمجة المواقع > عرض الاقسام
اذا لم استخدم الجدول ستظهر النتائج بالعكس
عرض الاقسام<لغات برمجة المواقع ... الخ
ولكن يبقى لاستخدام الجدول عيب وهو اذا زاد عرض الخلايا بسبب كبر حجم اسماء المواضيع فانه يظهر بشكل سئ
نرجو من الاخوة حل هذه المشكلة واظهار النتائج بالترتيب التنازلى
وجزاكم الله خيرا






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 02-10-2006, 11:46 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Oct 2003-
#6 (permalink)  

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

كود:
function subfiles($parentID){
echo"<table ><tr>";

for($pp=$parent;$pp!=200;){
   $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ")
or die("can't get the table");
 $rows=mysql_fetch_array($shows);
   $pp=$rows[ParentID];
 echo "<td>..<a href='subj.php?view=subj&subid=$rows[ID]&subpartid=$rows[ParentID]'>$rows[Title]</a></td> ";
} 
echo"</tr></table>";}

شئ اخر انظروا الى هذه القائمة المتفرعه
http://islamqa.com/index.php?pg=tree&ln=ara
اعلم انه كود جافا ولكن هل يمكن دمجة بالبي اتش بي بحيث يعرض بهذا الشكل
انا استطيع عملها ولكن هذا يتطلب اداء استعلامات كثيرة جدا
اي انه يقوم باداء جميع الاستعلامات دفعه واحده ثم يعرضهم مخفيين الى ان نقوم بالضغط على التنيف فيظهرهم
هل توجد طريقة لعمل الاستعلام الخاص بالقسم الذي اضغط عليه فقط ؟؟






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 04-10-2006, 04:43 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2004-
#7 (permalink)  

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


اخوك






__________________
:: فـريـق الـزيـنـي :: الزيني للإستضافة ::
:: نحن مختلفون :: We Are Different ::
للإتصال بي
http://mossabalzeeny.arabform.com
almosmm غير متواجد حالياً   قديم 04-10-2006, 05:11 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Nov 2003-
#8 (permalink)  

اخي الكريم فكرة الدالة التالية مقتبسة من مجلة Nuke

لكن ملاحظة اذا زاد عدد الاقسام الفرعية اقصد التفرع فانه سوف يزيد عدد الاستعلامات وبالتالي في نظري غير عملية اذا كان عندك عدد التفرعات كبير ..

كود PHP:

function getCategories($catid$title)
{
        
$sql mysql_query("SELECT id, title, parentid FROM links_categories WHERE id='$catid'");
        list(
$parent_id$parent_title$parent_parentid) = mysql_fetch_array($sql);
        
mysql_free_result($sql);

        if (
$parent_title != ''$title $parent_title.' -> '.$title;
        if (
$parent_parentid != 0$title getCategories($parent_parentid$parent_title);

        return 
$title;







__________________
AlwatanVoice, www.alwatanvoice.com
Almashroo, www.almashroo.com

Pal Coder == Palestinian Coder
Pal Coder غير متواجد حالياً   قديم 04-10-2006, 05:25 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2001-
#9 (permalink)  

بالنسبة لعكس الترتيب أسهل طريقة أن تقوم بالتخزين بدل الطباعة في مصفوفة وبعدها تطبعها بالإتجاه الذي تريده، وهذه هي الدالة مع الإضافة لكني لم أجربها وأتمنى أن تكون صحيحة 100%:

كود PHP:
<?php
function subfiles($parentID)
{
    
$Counter=0;  // أضفت هذا السطر
    
for($pp=$parent;$pp!=200;)
    {
        
$shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ") or die("can't get the table");
        
$rows=mysql_fetch_array($shows);
        
$pp=$rows['ParentID'];
        
// عدلت السطر التالي من طباعة إلى تخزين في مصفوفة
        
$arrTD[$Counter++]='<a href="subj.php?view=subj&subid='.$rows['ID'].'&subpartid='.$rows['ParentID'].'">'.$rows['Title'].'</a>';
    }
    
    
// أضفت السطرين التاليين للطابعة من خلال قراءة المصفوفة بالإتجاه التنازلي
    
for($Counter=count($ArrTD)-1;$Counter>=0;$Counter--)
    {
        if(
$Counter!=0)
            echo 
$arrTD[$Counter].' &gt; ';
        else
            echo 
$arrTD[$Counter];
    }
}
?>







التعديل الأخير تم بواسطة : WebDeveloper بتاريخ 04-10-2006 الساعة 01:22 PM. سبب آخر: تحويل الطباعة من داخل الجدول إلى شكل الشريط
WebDeveloper غير متواجد حالياً   قديم 04-10-2006, 01:00 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#10 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة WebDeveloper
كود PHP:
// أضفت السطرين التاليين للطابعة من خلال قراءة المصفوفة بالإتجاه التنازلي 
    
for($Counter=count($ArrTD)-1;$Counter>=0;$Counter--) 
    { 
        if(
$Counter!=0
            echo 
$arrTD[$Counter].' &gt; '
        else 
            echo 
$arrTD[$Counter]; 
    } 
استخدم
كود PHP:
 $arrTDarray_reverse($arrTD); 






__________________
موقع رياض القرآن متخصص بالقرآن الكريم
WwW.Ryadh-Quran.NeT
لمراسلتي
رياض القرآن غير متواجد حالياً   قديم 04-10-2006, 03:47 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Oct 2003-
#11 (permalink)  

اخي almosmm بانتظارك وجزاكم الله خيرا
اخي Pal Coder نعم هذه مشكلة كثرة الاستعلامات وانا قلت انى استطيع عملها ولكنها ستقوم بالاستعلامات كلها مرة واحده .. في حين اننا نريد ان تقوم بالاستعلام المطلوب عند الضغط على عنوان التصنيف مثلا ..
اخي WebDeveloper لم تعمل معي بارك الله فيك ارجو وضع حل اخر
اخي رياض القرآن بارك الله فيك وجزاكم الله خيرا ودالة جميلة فعلا لكنها ايضا لم تعمل معي



كود:
<?php
function subfiles($parentID)
{
    $Counter=0;  
    for($pp=$parent;$pp!=200;)
    {
        $shows =mysql_query("SELECT * FROM  tblsubject where ID='$pp' ") or die("can't get the table");
        $rows=mysql_fetch_array($shows);
        $pp=$rows['ParentID'];
        
        $arrTD[$Counter++]='<a href="subj.php?view=subj&subid='.$rows['ID'].'&subpartid='.$rows['ParentID'].'">'.$rows['Title'].'</a>';
    }

 $arrTD= array_reverse($arrTD);
echo $arrTD;
}
?>
[مع العلم انى وضعت
كود:
   echo '<pre>';
print_r($arr);
echo '</pre>';
فاعطت النتيجة الايجابية ولكن لم تظهر النتيجة باستخدام الدالة






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 05-10-2006, 03:21 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2001-
#12 (permalink)  

هذا السطر:
كود PHP:
echo $arrTD
سيطبع كلمة Array والسبب إن قاعد تطبع مصفوفة دون أن تحدد الفهرس حقها "Index"

فيفترض أن تضعها في لوب للطباعة

كود PHP:
    for($Counter=0;$Counter<count($arrTD);$Counter++) 
    { 
        if(
$Counter!=(count($arrTD)-1)) // حتى لا يضيف رمز الأكبر من في بعد اسم الموضوع
            
echo $arrTD[$Counter].' &gt; '
        else 
            echo 
$arrTD[$Counter]; 
    } 
وبالمناسبة ماذا كانت نتيجة الدالة التي قمتُ بوضعها؟

بالنسبة للأخ رياض القرآن ، دالة عكس فهرس المصفوفة جداً رائعة وأهو تريحنا من التفكير بالمقلوب، لكن بالطبع الطريقة الأولى أسرع في التشغيل - إذا كنا راح نتكلم بالملي سكندز
ومشكور على كل حال على الإضافة القيمة

تحياتي






WebDeveloper غير متواجد حالياً   قديم 05-10-2006, 06:35 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2001-
#13 (permalink)  

اكتشفت الخلل في الدالة التي كتبتها:

في اللوب الأخير:
كود PHP:
for($Counter=count($ArrTD)-1;$Counter>=0;$Counter--) 
استبدله بـ
كود PHP:
for($Counter=count($arrTD)-1;$Counter>=0;$Counter--) 
المصفوفة $arrTD كتبت أول حرف فيها بالكبير وكما تعلم لغة PHP لغة تفرف بين حالة الحروف الكبيرة والصغيرة case-sensitive
وذلك أدى لتجاوز اللوب وعدم تنفيذه !.

ربما من الأفضل استخدام التعديل السابق على دالة الأخ رياض القرآن فهي أسهل في تتبع الأخطاء

تحياتي






WebDeveloper غير متواجد حالياً   قديم 05-10-2006, 06:40 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Oct 2003-
#14 (permalink)  

اخي الكريم WebDeveloper التعديل الذي ادرجته على دالتك قمت به فور استخدامها ولكن كما قلت لم تعمل .. شكرا لك على التعديل على دالة المصفوفة العكسية يبقى ان نضيف شرط عمل الدالة اذا كان ال$Counter اكبر من الصفر حتى لايظهر خطأ

بقي سؤال وهو عن القائمة التى بالشكل
مثل هذا
http://www.binbaz.org.sa/index.php?pg=cat&id=0
هل يتم تكوينها يدويا ام هناك طريقة لعملها ديناميك بدون اجراء كل الاستعلامات دفعه واحده
اي يتم اجراء الاستعلام عند الضغط على تصنيفه فقط






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 06-10-2006, 11:30 PM
رد مع اقتباس
رد


أدوات الموضوع

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

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 07:58 AM بتوقيت المملكة العربية السعودية