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

الموضوع: [درس]: كيفية عمل بحث فى اى سكربت @

  1. #1

    [درس]: كيفية عمل بحث فى اى سكربت @



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

    مش حطول انا لسة فى مستوى متوسط فى ال php m وحبيت افيد الناس زى ما افادونى بأذن الله
    الدرس حيكون عن كيفية عمل بحث على اى سكربت وسوف نحتاج الى صفحتين

    الصفحة الاولى : index.php وهى يوجد فيها الفورم
    الصفحة الثانية : search.php وهى الصفحة الذى سظهر فيها نتائج البحث

    اولا الصفحة الاولى والذى فيها الفورم :

    كود PHP:
    <form method="post" action="search.php">

    <
    input type="text" value="Search" size="40" name="search">

    <
    input type="submit" value="Search" name="dosearch">

    </
    form
    اولا نعرف الفورم ثم نختاج ال method وهو post والصفحة الذى سيذهب اليها الفورم
    ثم عملنا حقل تكتس عادى لكى يكتب فية ما يبحث عنة
    وايضا زر الارسال submit لكى يرسل البيانات للصفحة ال search.php

    ثم نبدا فى كتابة صفحة استقبال البيانات :

    كود PHP:
    <?php
       
    if(isset($_POST['dosearch'])){
    ?>
    وهذا الكود يتحقق من ان الفورم تم ارسالة بالفعل

    كود PHP:
    <?
          $search 
    mysql_real_escape_string($_POST['search']);
          if(isset(
    $search)){
    ?>
    وهذا لكى يتاكد من ان الحقل ليس خالى

    كود PHP:
    <?
             $sql 
    mysql_query("SELECT * FROM `blog` WHERE `title` LIKE '%$search%' AND `message` LIKE '%$search%'")or die(mysql_error());
    ?>
    وبعد كدة نعمل الاستعلام من الجدول ولكن باسخدام الخاصية like والعلامة % وهى تعنى ان كل الكلام الى بعد $search وقبلة كمان

    كود PHP:
    <?
             $num 
    mysql_num_rows($sql);

             if(
    $num == 0){

                print
    'Your query returned no results.';

             }
    ?>
    وسنخدم هذة الدالة لعد كل الذى موجود فى قاعدة البيانات

    كود PHP:
    <?

             
    else{

                while(
    $r mysql_fetch_object($sql)){

                   print
    '<a href="blog.php?id='$r->id.'">'.$r->title.'</a><br /><br />';

                }

             }

    ?>
    وهذا الكود لعمل فيتش فى حلقة تكرارية لكى يخرج كل الذى فى قاعدة البيانات


    كود PHP:
    <?

          
    }else{

             print
    'You did not search anything.';

          }

       }else{

          print
    'The search form was not submitted.';

       }

    ?>
    وهذا اذا كان الكود خطا يخرج لة رسالة ما


    اتمنى ان اكون وفيت فى الشرح واذا كنت غلطت فى شى سامحونى

    تحياتى لكم :
    عمرو





    __________________


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    اخوي شرح ممتاز وانا جربت هالشي من فترة وفي عندي سؤال وانا بعرف جوابو لكن بدك من حضرتك تجرب ... نفرض اننا حابين نبحث عن الاحرف " سش " طبعا هالاحرف لا تشكل كلمة ... ولكن اذا تم البحث عنها فسوف تعرض نتائج تحتوي على كلمات وهذه الكلمات تحتوي داخلها الاحرف " سش " .

    هذه مش مشكلة ؟؟؟ والسيرفر رح يتعب جد وهو يبحث عن نتائج احنا ما بدنا ياها ... احنا بدنا بس نتائج كلمات معينة ؟؟ برايك شو الحل ؟؟ وكيف ممكن نتخلص من النتائج الغير مرغوب فيها ؟؟ ممكن تقلي نحدد بواسطة str الحد الادنى للاحرف لكن انا اقلك انو هالطريقة مش راح تفيد لانو في كلمات باللغة العربية تحتوي على حرفين مثل كلمة " حب " صح ؟؟

    شو الحل استاذي !! ؟؟


    مشكور جدا على الدرس وعلى التعب وان شاء الله يكون في ميزان حسناتك .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  3. #3


    :con2: طيب ياريت لو حضرتك تعرف الحل تفيدنا ما دام تقول انك تعرف وتفدينى وتفيد الجميع هنا باذن الله
    منتظرك





    __________________

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


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

    فمان الله .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    مشكور اخوي وهذه اضافة لك

    كود PHP:
    $word=$HTTP_POST_VARS['search'];

     if (
    strlen($word)<= 3)
    {
        echo 
    "<strong><div align=center>عفوا ً كلمة البحث أقل من ثلاث حروف يرجى كتابة كلمة أكثر من ذلك .</div></strong>";
        exit;

    ولو كان الرقم 3 اربعة افضل عشان ما يكون هناك تأثير و ارهاق لقواعد البيانات .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    اخوي jadweb مشكور على تفاعلك الكريم والحل الي حضرتك قدمتو ممكن لكن كيف حكيت بالسابق انو هناك في كلمات باللغة العربية مكونة من حرفين فقط !!



    قريبا رح انشر فكرتي بهالموضوع لانو انفتح موضوع للنقاش ومفش داعي نفتح عشان الحل موضوع جديد ...





    التعديل الأخير تم بواسطة EbNCaNa ; 18-08-2007 الساعة 01:30 AM
    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  7. #7


    اقتباس المشاركة الأصلية كتبت بواسطة jadweb.com
    مشكور اخوي وهذه اضافة لك

    كود PHP:
    $word=$HTTP_POST_VARS['search'];

     if (
    strlen($word)<= 3)
    {
        echo 
    "<strong><div align=center>عفوا ً كلمة البحث أقل من ثلاث حروف يرجى كتابة كلمة أكثر من ذلك .</div></strong>";
        exit;

    ولو كان الرقم 3 اربعة افضل عشان ما يكون هناك تأثير و ارهاق لقواعد البيانات .
    اضافة والله رائعة استاذى الكريم مشكور كتير

    اقتباس المشاركة الأصلية كتبت بواسطة EbNCaNa
    اخوي jadweb مشكور على تفاعلك الكريم والحل الي حضرتك قدمتو ممكن لكن كيف حكيت بالسابق انو هناك في كلمات باللغة العربية مكونة من حرفين فقط !!

    بكل الاحوال ممكن نفتح هالشي قضية للنقاش مع الاخوة الاساتذة اصحاب الخبرة الاكبر ... شو ممكن يكون الحل ؟؟؟ هل مثلا نعمل قاموس كلمات تحتوي على حرفين ... تفضلوا اخواني كيف ممكن نبني حل مع بعض !! ؟

    انا حاليا بصدد تطوير الية ارجو انها تنجح وبس تصدر النتائج رح انشرها ايجابية كانت ام سلبية لانو الانسان يتعلم من غلطو ويفيد الجميع ...
    بأذن الله تعالى وننتظر منك المشروع الذى تتكلم عنة وموفق فية ان شاء الله

    تحياتى لكم ونورتم الموضوع

    عمرو ......





    __________________

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    اخوي عمرو حلو نفتح قضايا للنقاش مماثلة لهالقضية وفي الناهية نلاقي حل ... يعني حلو الواحد يفكر ويشغل عقلو بعالم php لانو متعمة بكل معنى الكلمة ..

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

    اخوي عمرو انت عامل بالاستعلام البحث في العناوين وفي نص المواضيع ايضا صح ؟؟ انا بفكر انو هالطريق تتعب السيرفر ومن ناحية ثانية انا زائر بدي ابحث عن موضوع كامل يناقش الكلمة التي قمت بادخالها في خانة البحث ولست ابحث عن موضوع كبير يحوي كلمة البحث ولا يمت له بصلة وانما يحويها في السياق فقط !!

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

    كود PHP:
     while($r mysql_fetch_object($sql)){
      
    $Id $r -> id;
    $Title $r -> title;

    $word explode(' ',$Title); 

    foreach (
    $word as $sword) { 
       
    if (
    $sword == $search) { 
         
    print
    '<a href="blog.php?id=$Id">$Title</a><br /><br />'

    }


    شرح الكود : ببساطة عندما نستعلم من القاعدة يكون لنا نتائج كثير ومنها نتائج قد تحوي كلمات غير معرفة وغير مرغوب فيها كما ذكرنا في الاعلى وهنا الفكرة انو نعمل مثل فلتر او تصفية للنتائج ... نفرض انو طلع عنا 20 نتيجة بنيجي بنفحص عنوان اول نتيجة : بنقسم العنوان الى كلمات وبعدها نقوم بعمل حلقة نفحص فيها كل كلمة في العنوان ... نمرر كلمات العنوان جميعها على الحلقة لنفحص اذا كانت هناك كلمة في العنوان مشابهة تماما لكلمة نص البحث فاذا تحقق هذا الشرط قام البرنامج بطبع النتيجة والا فلم يطبعها وهذا الامر يحدث لجميع النتائج المستخرجة من القاعدة ... وهيك اذا كانت العناوين لا تحوي كلمة البحث ككلمة مستقلة فان البرنامج لن يطبع النتيجة وهكذا حققنا الي بدنا يا :nice:


    بتمنى يكون الشرح بسيط وسهل وقبل كلشي تكون الفكرة صحيحة !!



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





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  9. #9


    جزاك الله خيراً أخي العزيز و هذه إضافة بسيطه

    كود PHP:
    <?

                
    while($r mysql_fetch_object($sql)){

                 print
    '<a href="blog.php?id='$r->id.'">'.STR_REPLACE($search,'<u>'.$search.'</u>',$r->title).'</a><br /><br />';

                }
                
    ?>
    قمنا بتمييز كلمة البحث عنا باقي جملة العنوان عن طريق الداله
    str_replace

    و كذلك نستيطع تحديد الوقت بين كل عملية بحث و الاخرى عن طريق زرع الكوكيز

    تحياتي لك





    التعديل الأخير تم بواسطة حازم علي ; 18-08-2007 الساعة 02:33 AM
    __________________
    الحمد لله
    إيحي بلس لحلول تطبيقات الويب
    هل جربت مضاعفة عدد زوار موقعك عن طريق خدمة زوار ؟

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    279


    فى البداية

    اشكر اخي وصديقي وزميلي عمرو على الدرس الرائع ، جزاك الله كل خير وجعله الله فى ميزان حسناتك

    واشكر الاخ jadweb على اضافته الرائعة

    ولا انسي الاخ ابن قانا على اضافاته الجميله و فتح بااب للنقاش

    بالنسبة لفلترة البحث فهو حل رائع ولكنه غير مجدي فى جميع الاحوال

    فلنفترض ان الزائر كان يقوم بالبحث فى الموقع عن كلمة PHP

    وكان احد العناوين مثلا " مقدمة الى PHP5 "

    فلذلك لن يندرج هذا العنوان فى النتائج وهذا ما لانريده

    وان شاء الله يكون هناك حل شامل

    وعندي اضافة بسيطة

    باعتبار المتغير الحاوي للعنوان الموجود به كلمة البحث اسمه title
    وان المتغير الحاوي على كلمة البحث اسمه search

    فنقوم بجعل كلمة الحبث باللون الاحمر وجعلها Bold لتمييزها عن بقية العنوان
    مثال بحث عن كلمة swalifفى العنوان My favorite forum is swalif , i love it

    هتبقي النتيجة بشكل مشابة للاتي
    My favorite forum is swalif , i love it

    كود PHP:
    $titleereg_replace("$search""<font color='RED'><b>$search</b></font>"$title); 
    وان شاء الله نوصل كلنا لمناقشة هادفة

    اخوكم فى الله

    محمد ،،





    __________________


    Mohamed Mahmoud

    Mobile : +20103452846

    Blog : Hawy PHP

    Mail : Hawy [.] PHP [@] Gmail.com

    حسبي الله ونعم الوكيل


  11. #11
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    279


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

    و الطريقة الى حضرتك قدمتها صحيحة مائة بالمائة





    __________________


    Mohamed Mahmoud

    Mobile : +20103452846

    Blog : Hawy PHP

    Mail : Hawy [.] PHP [@] Gmail.com

    حسبي الله ونعم الوكيل


  12. #12


    السلام عليكم
    فعلا استاذ ابن قانا شرح وافى وفكرة رائعة من انسان اروع جزاك الله خير وبانتظار الاقتراحات ايضا الاخرى

    استاذ حازم على اضافة جميلة واختصار لذيذ للكود جزاء الله خيرا

    تحياتى لكم : عمرو





    __________________

  13. #13


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

    وبانتظار المزيد من الاقتراحات

    تحياتى لك : عمرو





    __________________

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    279


    وللاخ ابن قاانا

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

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

    ولنفترض انه كان يبحث عن PHP

    فى العنوان :

    درس جميل جدا PHP ما هي استخدامات الدوال فى PHP

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

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

    اخوك محمد ،،





    __________________


    Mohamed Mahmoud

    Mobile : +20103452846

    Blog : Hawy PHP

    Mail : Hawy [.] PHP [@] Gmail.com

    حسبي الله ونعم الوكيل


  15. #15


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

    و الطريقة الى حضرتك قدمتها صحيحة مائة بالمائة
    لا عليك أخي العزيز ما دام الهدف واحد





    __________________
    الحمد لله
    إيحي بلس لحلول تطبيقات الويب
    هل جربت مضاعفة عدد زوار موقعك عن طريق خدمة زوار ؟





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

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

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