صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 23

الموضوع: درسان لعمل تعدد الصفحات بكل بساطة

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

    درسان لعمل تعدد الصفحات بكل بساطة



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

    فكرت كثيرا في عمل طريقة بسيطة لعمل تعدد الصفحات وبعد ساعات توصلت وبحمدالله لهذه الفكرة

    ان كان احدكم يرى بها عيبا فليخبرني بها وجزاه الله خيرا

    هناك طريقتين في هذه الدروس
    وهي تقسيم الاستعلام لعدة صفحات ويتم وضع ارقام الصفحات في شريط به ارقام الصفحات
    مثال :
    1 2 3 4 5

    تماما مثل ماهو موجود في منتديات في بي ( مثال سوالف )

    الطريقة الثانية عبارة عن رابطين :
    السابق || التالي

    اترككم مع الدرسين وبانتظار نصائحكم وملاحظاتكم


    الطريقة الاولى ( ارقام الصفحات)
    الطريقة الثانية ( السابق||التالي)

    تحياتي
    أبوعامر





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


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


    شكرا أستاذ أبو عامر





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

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


    أخ أبو عامر !
    كيف أجعل الأرقام بين معقوفتين []





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

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


    السلام عليكم
    الظاهر لايوجد في الساحة سواي انا وانت

    بكل بساطة ضع المتغير $i بين القوسين ليصبح
    كود PHP:
    [$i
    تحياتي





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

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


    شكرا عزيزي
    الدرس رهيب جدا
    الله يسلمك





    __________________
    CSS - XHTML
    مدمن أنترنت غير متواجد حالياً

  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    Mar 2003
    المشاركات
    790


    شكراً أستاذي أبو عمر على الدرس
    و إن شاء الله نجربه بالقريب العاجل





    __________________
    دكتور لا
    Dr.no غير متواجد حالياً

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Jan 2002
    المشاركات
    663


    يعطيك العافية





    moooon غير متواجد حالياً

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    960


    السلام عليكم

    يعطيك العافيه اخوي

    ولاتقول مافي الا انت ترانا كلنا موجودين هاه ننتظر الدروس

    تحياتي





    izaq غير متواجد حالياً

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2004
    المشاركات
    437


    مشكور اخوي ابو عامر
    بس ابغاك تقو ل لي وش الفرق بين $count و $next لاني لا ارى بينهما فرق





    albdre غير متواجد حالياً

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


    السلام عليكم ورحمة الله
    اخواني مدمن أنترنت , Dr.no , moooon و izaq
    العفو ,,, واتمنة انكم تستفيدون من الدرس

    رد مقتبس من albdre
    مشكور اخوي ابو عامر
    بس ابغاك تقو ل لي وش الفرق بين $count و $next لاني لا ارى بينهما فرق
    فعلا الفرق بسيط وهو ان عند اخذنا لقيمة count عن طريق GET اصبح له قيمة
    الان سنجعل قيمة count عبارة عن count المأخوذة عنطريق GET ونضيف لها عدد النتائج التي نريد عرضها في الصفحة التالية , ونخزن هذه القيمة في next ثم نرسل للمتصفح ان قيمة count للصفحة القادمة اصبحت next


    كلام معقد شوي , ولكن لو ركزت فيها حتفهم قصدي
    اخذنا قيمة count من المتصفح
    اضفنا لها عدد النتائج التي نريدها في الصفحة التالية
    خززّنا القيمة الاجمالية في المتغير next
    اعطينا للمتصفح القيمة الجديدة لـ count وهي قيمة next لكي يرسلها للصفحة القادمة؟
    اتمنى تكون فهمت شرحي المتواضع

    تحياتي





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

  11. #11
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2002
    المشاركات
    2,289


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

    -10 مثلا


    وشكرا لك ابو عامر على الدرس الجميل





    المهمة9 غير متواجد حالياً

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


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

    أهلا بك اخي المهمة 9

    تم معالجة هذا الأمر
    فلو لاحظت انه في السكربت ستجد الشرط , انه لو كانت قيمة count أقل من صفر ( يعني قيمة سالبة ) فسيكون رابط السابق غير نشط
    ولكنها لن تظهر أي نتائج
    ( وهذا الشئ حسب علمي وارد في كل الطرق المشابهة التي شاهدتها , وذلك لأنه ليس من المفترض ان يدخل المستخدم الرقم بشكل يدوي )
    على العموم هذه يمكن معاجلتها , وذلك باضافة شرط انه اذا كانت قيمة count اقل من صفر يظهر رسالة خطأ او يعتبرها موجبة او يظهر الصفحة الاولى

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





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

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Jul 2002
    المشاركات
    172

    مشكور يابو عامر



    بصراحة الدرسين استفدت منها كثير واحسن ما اعجبني سهولة الشرح
    الله يوفقك لكن فيه نقطة راح اناقشك معاها على تطوير الكود ...
    اولاً : عندما يضغط المستخدم (التالي) أو رقم الصفحة اللي الاحظه انه تظهر قيمة أول عدد للسجل في عنوان المتصفح وهي المتغير count وهذي ثغرة بسيطة .. لماذا لا تجعل المتغير مرقم تسلسلي ؟
    يعني بدل 10،20،30،40،50 تخليها ترقيم عادي يعني رقم الصفحة 1 أو 2 أو 3
    لأن الأرقام كذا بتكشف تسلسل أرقام القاعدة أو السجلات
    طبعاً الوضع مو سهل لكن مو صعب حلها ...
    ثانياً : النقطة التي تطرق إليها الأخ (المهمة9) ...
    وهي لو تم وضع رقم يدوياً في عنوان المتصفح أنا جربت كودك وبذلك لن يتم إخراج أية نتائج ...
    لكن طريقة وضع الرسالة هنا المشكلة بعد التعديل على النقطة الأولى
    حيث افرض انه لو كانت لديك 53 سجل وعدد السجلات في كل صفحة 10 فكيف ستتم القسمة؟؟
    ستقول لي لماذا القسمة سأقول لك لكي يتم إدراج العدد في الشرط الذي سيخرج الخطأ إذا كيف ستعرف عدد الصفحات عند كل قاعدة سيستخدمها أي شخص ؟
    الجواب أيضاً سهل وذلك باستخدام الدالة ceil إذا سيتم تقريب العدد العشري إلى أكبر وأقرب عدد صحيح ..
    على كل أنا طولت عليك لكن بغيت أخذ كودك من جميع النواحي وأرد على الأسئلة عنك ...
    الكود تبعك انا جربته أو بالأحرى جربت الإثنين وكلها اشتغلت زي اللوز وما فيها أي مشكلة
    لكن بعد النقطتين اللي ذكرتها صار لازم تعديل ...
    خذ الكود مع انه ( مخربص )
    لأن ما كان عندي وقت ...
    وآسف على الإطالة والسلام عليكم ...
    كود PHP:
    <html dir=rtl>
    <head>
    <title>عرض النتائج</title>
    </head>
    <body>
    <?php
    $connection 
    Mysql_connect('127.0.0.1' ,'root' ,'');
    Mysql_select_db('test2'$connection);
    $results 10;
    $limit $HTTP_GET_VARS['page'];
    if (!
    $limit) {
        
    $limit 0;
    } else {
    $limit $limit*$results;
    $limit $limit-$results;
    }
    $resultsno Mysql_num_rows(mysql_query("SELECT id FROM names"));
    $sql Mysql_query("SELECT * FROM names ORDER BY id LIMIT $limit,$results") or die("خطأ في الاستعلام");
    $error_msg $resultsno/$results;
    $error_msg ceil($error_msg);
    if (
    $HTTP_GET_VARS['page']>$error_msg) {
    print 
    "<center><h2>عفواً الصفحة المطلوبة غير موجودة!!</h2></center>";
    } else {
    print 
    "<center><h2>عدد السجلات في قاعدة البيانات : $resultsno  </h2></center>";
    ?>
    <table border="1" width="100%">
      <tr>
        <td width="14%" align="center">الرقم</td>
        <td width="43%" align="center">الاسم</td>
        <td width="43%" align="center">البريد الإلكتروني</td>
      </tr>
    <?
    while ($rows Mysql_fetch_row($sql)) {
        echo 
    "
        <tr>
        <td width='14%' align=center>
    $rows[0]</td>
        <td width='43%' align=center>
    $rows[1]</td>
        <td width='43%' align=center>
    $rows[2]</td>
        </tr>"
    ;
    }
    echo 
    "</table>";
    $page $HTTP_GET_VARS['page'];
    $back$page-1;
    if (
    $back<1){
    echo
    "السابق || ";
    }else{
    echo 
    "<a href='$PHP_SELF?page=$back'>السابق</a>|| ";
    }
    $numbers $page*$results;
    if (!
    $page or $page=0) {
    $nextto $page+2;
    } else {
    $nextto=$HTTP_GET_VARS['page']+1;
    }
    if (
    $numbers>=$resultsno){
    echo
    "التالي";
    } else {
    echo
    "<a href='$PHP_SELF?page=$nextto'>التالي</a>";
    }
    }
    هههههه عارف الكود حوسة بس عساك تفهم علي والله يعينك على قرايته ..
    طبعاً بالنسبة لقاعدة البيانات راح اوفر عليكم هذي قاعدة بيانات بسجلاتها على عجل ...
    كود:
    CREATE TABLE `names` (
      `id` int(11) NOT NULL auto_increment,
      `name` varchar(250) default NULL,
      `email` varchar(250) default NULL,
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM;
    
    #
    # Dumping data for table 'names'
    #
    
    INSERT INTO names VALUES (1,'mohammed','alkha6ar@msn.com');
    INSERT INTO names VALUES (2,'zhswg','zhswg@hotmail.com');
    INSERT INTO names VALUES (3,'zvq','zvq@hotmail.com');
    INSERT INTO names VALUES (4,'gufhzfq','gufhzfq@hotmail.com');
    INSERT INTO names VALUES (5,'dxceyo','dxceyo@hotmail.com');
    INSERT INTO names VALUES (6,'tbjbbqub','tbjbbqub@hotmail.com');
    INSERT INTO names VALUES (7,'lbopsc','lbopsc@hotmail.com');
    INSERT INTO names VALUES (8,'segcuw','segcuw@hotmail.com');
    INSERT INTO names VALUES (9,'dgijen a','dgijen a@hotmail.com');
    INSERT INTO names VALUES (10,'nlo atriu','nlo atriu@hotmail.com');
    INSERT INTO names VALUES (11,'jtzvdr','jtzvdr@hotmail.com');
    INSERT INTO names VALUES (12,'uocqmvi','uocqmvi@hotmail.com');
    INSERT INTO names VALUES (13,'vhd','vhd@hotmail.com');
    INSERT INTO names VALUES (14,'cyxsxzy a','cyxsxzy a@hotmail.com');
    INSERT INTO names VALUES (15,'qtmuuizv','qtmuuizv@hotmail.com');
    INSERT INTO names VALUES (16,'ldcpmnm','ldcpmnm@hotmail.com');
    INSERT INTO names VALUES (17,'lpsvjb','lpsvjb@hotmail.com');
    INSERT INTO names VALUES (18,'zlspoy','zlspoy@hotmail.com');
    INSERT INTO names VALUES (19,'d anjin','d anjin@hotmail.com');
    INSERT INTO names VALUES (20,'gzhqvwb','gzhqvwb@hotmail.com');
    INSERT INTO names VALUES (21,'sveumor','sveumor@hotmail.com');
    INSERT INTO names VALUES (22,'d aqxl','d aqxl@hotmail.com');
    INSERT INTO names VALUES (23,'gkfepxl','gkfepxl@hotmail.com');
    INSERT INTO names VALUES (24,'neggyifj','neggyifj@hotmail.com');
    INSERT INTO names VALUES (25,'ktpzu alpfz','ktpzu alpfz@hotmail.com');
    INSERT INTO names VALUES (26,'rkvkrwf a','rkvkrwf a@hotmail.com');
    INSERT INTO names VALUES (27,'lfslxyer','lfslxyer@hotmail.com');
    INSERT INTO names VALUES (28,' apsikzzj',' apsikzzj@hotmail.com');
    INSERT INTO names VALUES (29,'ztregsj asr','ztregsj asr@hotmail.com');
    INSERT INTO names VALUES (30,'uwpnwbrs','uwpnwbrs@hotmail.com');
    INSERT INTO names VALUES (31,'mpjfpisxs','mpjfpisxs@hotmail.com');
    INSERT INTO names VALUES (32,'kjtqkh','kjtqkh@hotmail.com');
    INSERT INTO names VALUES (33,'eersczsfv','eersczsfv@hotmail.com');
    INSERT INTO names VALUES (34,'yrjsqqo','yrjsqqo@hotmail.com');
    INSERT INTO names VALUES (35,'rsbmyl','rsbmyl@hotmail.com');
    INSERT INTO names VALUES (36,'pbkygbw','pbkygbw@hotmail.com');
    INSERT INTO names VALUES (37,'qpzeq','qpzeq@hotmail.com');
    INSERT INTO names VALUES (38,'edhrtwqgf a','edhrtwqgf a@hotmail.com');
    INSERT INTO names VALUES (39,'kv a arrn','kv a arrn@hotmail.com');
    INSERT INTO names VALUES (40,'rqycx','rqycx@hotmail.com');
    INSERT INTO names VALUES (41,' amwtpwfwq',' amwtpwfwq@hotmail.com');
    INSERT INTO names VALUES (42,'ibhydjos','ibhydjos@hotmail.com');
    INSERT INTO names VALUES (43,'phrmvxmc','phrmvxmc@hotmail.com');
    INSERT INTO names VALUES (44,'yu atooox','yu atooox@hotmail.com');
    INSERT INTO names VALUES (45,'fzivejdfi','fzivejdfi@hotmail.com');
    INSERT INTO names VALUES (46,'rrovrmkz','rrovrmkz@hotmail.com');
    INSERT INTO names VALUES (47,'h awexwq','h awexwq@hotmail.com');
    INSERT INTO names VALUES (48,'dxipykkhb a','dxipykkhb a@hotmail.com');
    INSERT INTO names VALUES (49,'mtzxixxx','mtzxixxx@hotmail.com');
    INSERT INTO names VALUES (50,' aqhbz',' aqhbz@hotmail.com');
    INSERT INTO names VALUES (51,'eqdec','eqdec@hotmail.com');
    INSERT INTO names VALUES (52,'iplyv','iplyv@hotmail.com');
    INSERT INTO names VALUES (53,'xvlrziqf','xvlrziqf@hotmail.com');






    __________________

    ****************************
    Danger For Make Dreams
    ****************************
    alkha6ar غير متواجد حالياً

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Jul 2002
    المشاركات
    172


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






    __________________

    ****************************
    Danger For Make Dreams
    ****************************
    alkha6ar غير متواجد حالياً

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


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

    اخي alkha6ar , الف شكر لك , فانا شخصيا ممن يعشقون الحوار في تطوير الامور

    فلنأتي الى ردكم الكريم :

    ردا على (أولا ) : عندما يضغط المستخدم (التالي) أو رقم الصفحة اللي الاحظه انه تظهر قيمة أول عدد للسجل في عنوان المتصفح وهي المتغير count وهذي ثغرة بسيطة .. لماذا لا تجعل المتغير مرقم تسلسلي ؟

    عفوا هذه ليست بثغرة (في نظري ) لانه هذا ترتيب السجل وليس رقم السجل
    حتى انه من الطريقة التي قمت بعملها في ردك السابق , فكل ماعلي هو طرح عدد النتائج من رقم الصفحة لمعرفة ترتيب السجل الحالي

    وحتى وان كن رقم السجل , ففي كل سكربتات العالم , سيظهر لك رقم الid لاي سجل ( مثلا هذا الموضوع رقمه 483520 )
    وcount سيتغير بناء على حسب المعطيات التي تدخلها
    فمثلا لو استخدمنا الدرس في نتائج محرك بحث فالرقم سيتغير في كل مرة تدخل فيها بحثا ( حسب الشروط الموضوعه في الاستعلام )
    يبدوا ان هناك نقطة لم افهمها في قصدك ,

    الرد على (ثانيا) اذا انتفت الحاجة لاولاً , فثانيا لاحاجة لها

    وكما ذكرت في ردك الكريم ,,, كل شي ممكن عمله , لكن القصد هو الوصول للفكرة

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

    فلهذا كنت دائما اترك هذا الجزأ جانبا حتى اتفرغ له
    وبالفعل جاء اليوم الذي قررت ان لا اعمل اي شي في هذا اليوم حتى اصل الى حل ,, وفي النهاية ضحكت كثيرا وتعجبت من بساطة الفكرة ,, واني كنت (مكبّر ) الموضوع حبتين

    على العموم هنا درس لعمل فكرة قريبة من التي تقصدها وهي ارقام الصفحات :
    http://www.phpfreaks.com/quickcode/C...Results/18.php
    ( ويمكنك تصور التعقيد الموجود في الفكرة )

    بانتظار ردك الكريم





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





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

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

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