النتائج 1 إلى 9 من 9

الموضوع: اخوي الاستاذ ابو عامر ...

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307

    اخوي الاستاذ ابو عامر ...



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

    اخوي واستاذي ابو عامر

    لانسى فضلك علي .. ..

    فالله يجزاك خير انت وكل المدرسين

    ابي منك شرح مع انك شرحتة شرح مفصل في موقعك

    http://www.abu3amer.com/lessons.php?...owlesson&id=12

    لكن والله طبقته اكثر من كم مره ... واوقع في اخطاء مدري ليه

    فارجوا منك استاذي عمل صفحة سجل مثلا

    انا عملت صفحة سجل وجاهزه ... بغيت اضيف عليها تعدد الصفحات

    فوقعت في اخطاء تبي ارسل لك الصفحه مع القاعده ابشر

    ملف واحد + ملف القاعده

    لكن امتنى شرح ذلك

    :shy:





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web
    Mr.php-ar غير متواجد حالياً


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


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

    اتمنى ان اكون عند ثقتك التي وضعتها في

    بخصوص درس تعدد الصفحات

    المثال بسيط جدا

    فلنفرض انه لدينا قسم للدروس , ونريد ان نعرض عشرة دروس في كل صفحة

    جدول الدروس هو lessons ويتكون مما يلي :
    id رقم الدرس
    username اسم كاتب الدرس
    title وهو عنوان الدرس
    lesson الدرس نفسه
    date تاريخ اضافة الدرس

    الان كما هو معروف لكي نظهر قائمة بالدروس الموجودة , وثم عند الضغط على اسم الدرس سيتم عرض الدرس لك
    لعمل هذه القائمة , سنقوم بهذا الاستعلام :
    كود PHP:
    SELECT FROM lessons 
    ولكن لو اردنا عرضها حسب التاريخ تنازليا حيث يتم عرض الدرس الاحدث أولا , سيكون الاستعلام كما يلي :
    كود PHP:
    SELECT FROM lessons ORDER BY date DESC 
    الى الان انتهى الاستعلام في الوضع الطبيعي , وبهذا سيتم احضار بيانات جميع الدروس وعرضها في صفحة واحدة

    ماذا لو اردنا فقط احضار آخر عشرة دروس؟
    سيكون الاستعلام كما يلي
    كود PHP:
    SELECT FROM lessons ORDER BY date DESC LIMIT 10 
    حيث ان LIMIT سيجعلني احدد عدد النتائج التي نريد احضارها ( وفي هذا المثال عشرة فقط )

    الان نريد ان نحضر في الصفحة الاولى اخر عشرة دروس , وفي الصفحة التي تليها العشرة التي تليها وهكذا

    لاحضار العشرة التالية ( يعني العشرة دروس التي تلي العشرة الاولى )
    فسيكون استعلامنا كما يلي :
    كود PHP:
    SELECT FROM lessons ORDER BY date DESC LIMIT 10,10 
    حيث ان LINIT 10,10 تعني حرفيا ( من بعد العشرة سجلات احضرلي عشرة نتائج )

    تطبيقا لما سبق , فلو اردنا ان نحضر العشرة التي تليها ( يعني العشرة الثالثة , أي العشرة التي بعد العشرين الاولى ) , فسيكون الاستعلام

    كود PHP:
    SELECT FROM lessons ORDER BY date DESC LIMIT 20,10 
    الآن اعتقد ان الصورة اتضحت

    الان كيف نقوم بتحديد اي عشرة سيتم تحديدها في هذه الصفحة والصفحة التالية والسابقة , وهكذا آليا؟؟؟
    هذا هو ملخص الدرس

    بعد او قبل ان نجري استعلامنا هذا , سنجري استعلاما , مفاده اننا نريد ان نعرف كم سجلا موجودا لدينا في القاعدة ( ينطبق علسه نفس مواصفات الاستعلام الذي سنجريه , فلو كان هناك شرط WHERE يجب ان نطبق نفس الشرط في استعلام معرفة مجموع السجلات )

    استعلام معرفة مجموع السجلات هو كالتالي (بدون LIMIT )
    كود PHP:
    SELECT id FROM lessons ORDER BY date 
    كما هو معروف ان الدالة mysql_num_rows ستعطينا عدد السجلات الموجودة في الاستعلام , وسنخزن قيمتها في متغير سنسمية check_end

    كما يلي :
    كود PHP:
    $check_end=mysql_num_rows($query1); 
    الان نبدأ في عمل تعدد الصفحات
    يأتي دور عمل تعدد الصفحات

    ** اولا نضع عداد للصفحات ونعين له القيمة 1 مبدأيا

    $i=1;

    ** عدد السجلات التي سنعرضها في كل صفحة نعين قيمتها للمتغير $perpage

    $perpage=2;

    ** الان , سنستخدم متغير للرقم الذي سيتم اعطاء قيمتة للمتغير count وسميناه $next واعطينا مبدأيا القيمة صفر

    $next=0 ;

    **الان نبدأ بجملة شرطية , مفادها انه طالما المتغير $next اقل من اجمالي السجلات $check_end سيتم تنفيذ الاوامر :

    while($next<=$check_end){

    ** الان سنضع شرطا اخر داخل الشرط السابق , وظيفتها عدم وضع رابط على رقم الصفحة التي يتصفحها الزائر :

    if ($count==$next){echo" $i ";}

    ** بخلاف ذلك الشرط , سيتم وضع رابط على رقم الصفحة , متضمنا قيمة المتغير count والتي هي المتغير next


    else{echo" <a href='page.php?count=$next'>$i</a>";}
    $next=$next+$perpage;$i++; }


    اولا كتبنا انه لو كان المتغير $next يساوي المتغير $count فسيطبع لنا رقم
    الصفحة $i غير نشطة
    ( يعني لو كان المتغير يساوي الصفحة التي نستعرضها فلن نضع
    عليها رابطا لاننا نستعرضها فعلا )
    اذا لم يتحقق هذا الشرط فانه سينفذ مايلي وهو
    وضع رابط على رقم الصفحة يعطي للمتصفح قيمة المتغير count القيمة $next
    بعد ذلك
    , سنزيد قيمة المتغير $next بقيمة مقدارها $perpage لكي يتم اضافتها لرابط
    رقم الصفحة التالية
    الان نزيد رقم الصفحة $i بمقدار واحد كما يلي

    $i++;





    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307

    replay



    والله من غير ما اقول الكل عارفك يابو عامر


    انك كفو واخو وتلتقي بالوقتين ...


    اخوي ابو عامر والله اني مطبقة اكثر مما تتوقع ...

    وايضا حاولت مع تعدد الصفحات للاخ رفيع

    لكن لادري كيف ابدأ

    انتظر لكود الصفحة كاملا:-

    كود PHP:
    <html dir='rtl'><?
    include("config.php");
    $count=$_GET['count'];
    if(!
    $count){
    $count=0;
    }
    echo
    "<center><b><font face='Ms Sans serif' size=2>توقيعات الزوار الكرام</font><br><br>";
    $query1=mysql_query("SELECT * FROM gb ORDER BY GustID DESC") or die (mysql_error() );
    $check_end=mysql_num_rows($query1);

    while(
    $n=mysql_fetch_array($query1)){
    $gname=$n["gname"];
    $gemail=$n["gemail"];
    $gcomment=$n["gcomment"];
    $gdate=$n["gdate"];

    $query2=mysql_query("SELECT GustID FROM gb ORDER BY GustID LIMIT $count,$perpage")
    or die (
    "can com the table");

    echo
    "<div align='center'>
      <center>
      <table border='1' cellspacing='0' width='77%' id='AutoNumber1' bgcolor='#E0D9BE' bordercolor='#800000' height='32' style='border-collapse: collapse' cellpadding='0'>
        <tr>
          <td width='100%' bgcolor='#F8F8F8' height='31'>
          <div align='center'>
            <center>
            <table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse; border-width: 0' bordercolor='#111111' width='99%' id='AutoNumber2' height='20'>
              <tr>
                <td width='100%' style='border-style: none; border-width: medium' align='center' height='18'>
                <span lang='en-us'>
                <font face='MS Sans Serif' size='1' color='#800000'>
    $gcomment</font></span></td>
              </tr>
            </table>
            </center>
          </div>
          </td>
        </tr>
        <tr>
          <td width='100%' bgcolor='#EBEBEB' height='22'>
          <table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse; border-width: 0' bordercolor='#111111' width='100%' id='AutoNumber3' height='19'>
            <tr>
              <td width='32%' align='center' style='border-style: none; border-width: medium' height='17'>
              <p align='right'><font face='MS Sans Serif' size='1' color='#52557C'>&nbsp;</font><font face='MS Sans Serif' size='1'>الكاتب 
              :</font><font face='MS Sans Serif' size='1' color='#52557C'> <span lang='en-us'>
                
    $gname</span></font></td>
              <td width='36%' align='center' style='border-style: none; border-width: medium' height='17'>
              <p align='right'></td>
              <td width='32%' align='center' style='border-style: none; border-width: medium' height='17'>
              <p align='right'><font face='MS Sans Serif' size='1' color='#52557C'>&nbsp; 
               
              </font><font face='MS Sans Serif' size='1'>في :</font><font face='MS Sans Serif' size='1' color='#52557C'> <span lang='en-us'>
    $gdate</span></font></td>
            </tr>
          </table>
          </td>
        </tr>
      </table>
      </center>
    </div>
    <div align='center'>
      <center>
      <table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1' height='8'>
        <tr>
          <td width='100%' height='8'></td>
        </tr>
      </table>
      </center>
    </div>"
    ;

    $i=1;
    $perpage=2;
    $next=0;

    while(
    $next<=$check_end){
    if(
    $count==$next){
    echo 
    $i;
    }else{
    echo
    "<a href='gust.php?count=$next'>$i</a>";
    }
    $next=$next+$perpage;
    $i++;
    }
    }
    ?>


    متى تكون موجود بالماسنحر

    :shy: ادري والله اني تعبتك لكن الله يعنك ويجزاك خير





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web
    Mr.php-ar غير متواجد حالياً

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


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

    عزيزي نايف

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

    الخطأ كما هو واضح انه في جملة while لديك

    الجملة هي
    كود PHP:
    while($n=mysql_fetch_array($query1)) 
    وهذا خطأ , حيث ان الاستعلام $query1 خاص بتعدد الصفحات لمعرفة عدد السجلات الموجودة في قاعدة البيانات
    وانت هنا استخدمته في في جملة while معناها ان كل النتائج ستظهر لك في صفحة واحدة بدون اي تقسيم ( حيث ان limit$count,$perpage هي ماتقوم بعمل التقسيم )
    لذلك الصحيح ان تقوم بعمل الاستعلام الثاني : $query2 ثم تقوم بعمل جملة while مستخدما الاستعلام الثاني , فيصبح الكود :

    كود PHP:
    $query2=mysql_query("SELECT GustID FROM gb ORDER BY GustID LIMIT $count,$perpage")

    while(
    $n=mysql_fetch_array($query2))
    {
    //طباعة البيانات







    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    والله يا اخوي ابو عامر ادري تعبتك ..

    لكن مو نسخ اني كاتبها .. اما الهوتميل تنسيق .

    اليوم بعدل وانشاء الله خير ...

    وجزاك الله خير ويعطيك مليون عافيه





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web
    Mr.php-ar غير متواجد حالياً

  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    استاذي ابو عامر

    الله ينور لك ويزيدك من من نوره ويوفقك ويجزاك كل خير

    ويجزاك الجنه ..


    طبقت وطلع تمام لكن فيه مشكلة وهي كل ما اضغط الصفحة الثانيه

    نفس الشي

    والصفحة يطلع فيها كل المشاركات ..

    كود PHP:

    <html dir='rtl'><center><font face='ms sans serif' size='1'><?
    include("config.php");
    $count=$_GET['count'];
    if(!
    $count){
    $count=0;
    }
    echo
    "التوقيعات";
    $query1=mysql_query("SELECT * FROM gb ORDER BY GustID DESC") or die (mysql_error() );
    while(
    $n=mysql_fetch_array($query1)){
    $gname=$n["gname"];
    $gemail=$n["gemail"];
    $gcomment=$n["gcomment"];
    $gdate=$n["gdate"];
    $check_end=mysql_num_rows($query1);

    $i=1;
    $perpage=2;
    $next=0;

    $query2=mysql_query("SELECT GustID FROM gb ORDER BY GustID LIMIT $count,$perpage")
    or die (
    mysql_error() );

    $km=mysql_num_rows($query2);

    //عرض الجدول

    }

    while(
    $next<=$check_end){
    if(
    $count==$next){
    echo
    "";
    }else{
    echo
    "<a href='gust.php?count=$next'>$i</a>";
    }
    $next=$next+$perpage;
    $i++;
    }
    ?>
    الله يعينك علي :shy:





    Mr.php-ar غير متواجد حالياً

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    الله يعينك على البرمجة

    ألم أقل لك انك تستعجل

    قم بالتركيز في ردي السابق وستعرف انك مافهمت المطلوب تعديله

    ركز جيدا وستعرف اين الخطأ الذي وقعت به





    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2001
    المشاركات
    639


    ابو عامر
    يعطيك العافية على هذا الشرح الرائع
    ونسأل الله ان يجعله في ميزان حسناتك





    __________________
    تعلم فليس المرء يولد عالما
    abutawfig غير متواجد حالياً

  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2004
    المشاركات
    2,307


    قول آميــــــــن

    الله يفتحها في وجهك وين ما رحت

    ويوفقك واشكرك على تجوابك معي

    وعلى سعة قلبك يا استاذ

    الله يعطيك الف عافيه ...

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

    تحياتي ....





    __________________
    بي اتش بي العرب : php-ar.com
    دروس PHP خاص : phpfaq.php-ar.com

    new site : www.naifphp.net/web
    Mr.php-ar غير متواجد حالياً





ضوابط المشاركة

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

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