ركن لغات البرمجه : :: لغات البرمجه php و asp و Ajax و Java و غيرها

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

صورة 'Arab Coders Project' الرمزية
Arab Coders Project
مطور الويب
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الدولة : EGYPT
المشاركات: 4,566
قديمة 20 - 03 - 2010, 13:53
المشاركة 1
نشاط Arab Coders Project
  • قوة السمعة : 2151
  • الإعجاب: 895
    Iconrote أخطر درس لكيفية برمجة محرك بحث متصل بقواعد البيانات يصلح لاى اسكربت


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


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


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


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


    خطوات تطبيق الدرس:

    1-انشاء قاعدة بيانات كمثال حتى يتم البحث فيها

    2-انشاء ملف form.htm الخاص بعمل مستطيل البحث

    3-انشاء ملف style.css الخاص بتجميل شريط البحث

    4-انشاء ملف mysql.php الخاص بالاتصال ومحاكاة قاعدة البيانات وتنفيذ عملية البحث فى الجداول والحقول

    5-انشاء ملف processform.php الذى سوف يقوم تنفيذ الكلمة او الجملة التى تم كتابتها فى محرك البحث ليتم البحث عنها

    اولا: انشاء قاعدة البيانات

    سوف نقوم بانشاء قاعدة بيانات وراح نسميها users, وبداخلها سوف ننشأ جدول اسمه users وعدد حقوله 5 حقول

    -id

    -firstname

    -lastname

    -email

    -comments


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

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

    انا قمت بادخال بعض الاسماء وبياناتهم

    شوف الصورة

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



    تمام انتهينا من انشاء قاعدة البيانات .........


    يوجد خطوة مهمة جدا وهى اننا نريد ان نقوم بعمل Index من النوع fulltext
    للجدول اللى راح نبحث فيه
    ولعمل ذلك فقط قم بعمل هذا الامر من خلال اختيار زر sql لتنفيذ أمر sql


    رمز Code:
    ALTER TABLE users ADD FULLTEXT(firstname, lastname, comments);

    بحيث راح يكون الناتج كالصورة الاتية:

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


    ثانيا: انشاء ملف form.htm

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

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

    هو تنفيذ ملف processform.php الذى سوف يشرح فيما بعد


    كود ملف form.htm



    رمز Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>محرك بحث</title>
    
    <link href="/style.css" rel="stylesheet" type="text/css" media="screen" />
    
    <script language="javascript" type="text/javascript">
    
    window.onload=function(){
    
    if(document.getElementById&&document.
    getElementsByTagName&&document.createElement){
    
    var sfield=document.getElementsByTagName('form')[0].elements[0];
    
    if(!sfield){return};
    
    sfield.onfocus=function(){this.value=''};
    
    sfield.onblur=function(){
    
    if(!this.value){this.value='ادخل الكلمة المراد البحث عنها'};
    
    }
    
    }
    
    }
    
    </script>
    
    </head>
    
    <body>
    
    <h1>محرك البحث فى قاعدة البيانات</h1>
    
    <div>
    
    <form method="get" action="processform.php">
    
    <input type="text" name="searchterm" title="ادخل الكلمة المراد البحث عنها" value="ادخل الكلمة المراد البحث عنها"
    class="searchbox" />
    
    <input type="submit" name="search" title="Search Now!" value="بحـث" />
    
    </form>
    
    </div>
    
    </body>
    
    </html>


    ثالثا: انشاء ملف style.php

    سوف نقوم بتجميل الفورم الخاص بنا فى الصفحة السابقة

    وهذا هو كود الملف



    رمز Code:
    body{
    
    background: #ccc;
    
    margin: 0;
    
    padding: 0;
    
    }
    
    h1{
    
    width: 375px;
    
    padding: 10px;
    
    margin-left: auto;
    
    margin-right: auto;
    
    background: #339;
    
    font: normal 18px Arial, Helvetica, sans-serif;
    
    color: #fff;
    
    border: 1px solid #000;
    
    text-align: center;
    
    }
    
    h2{
    
    font: bold 18px Arial, Helvetica, sans-serif;
    
    color: #339;
    
    }
    
    p{
    
    font: normal 10pt Arial, Helvetica, sans-serif;
    
    color: #000;
    
    }
    
    a:link,a:visited{
    
    font: normal 10pt Arial, Helvetica, sans-serif;
    
    color: #00f;
    
    text-decoration: none;
    
    }
    
    a:hover{
    
    color: #f00;
    
    text-decoration: underline;
    
    }
    
    .maincontainer{
    
    width: 375px;
    
    padding: 10px;
    
    margin-left: auto;
    
    margin-right: auto;
    
    background: #f0f0f0;
    
    border: 1px solid #000;
    
    }
    
    .rowcontainer{
    
    padding: 10px;
    
    margin-bottom: 10px;
    
    background: #ccf;
    
    }
    
    .searchbox{
    
    width: 200px;
    
    font: normal 12px Arial, Helvetica, sans-serif;
    
    color: #000;
    
    }
    
    .searchbutton{
    
    width: 80px;
    
    font: bold 12px Arial, Helvetica, sans-serif;
    
    color: #000;
    
    }


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


    رابعا: انشاء ملف mysql.php

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

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

    1-الاتصال بقاعدة البيانات

    2-تنفيذ عملية البحث للكلمة او الجملة المراد البحث عنه


    كود ملف mysql.php



    رمز Code:
    <?php
    
    // define 'MySQL' class
    
    class MySQL{
    
    private $conId;
    
    private $host;
    
    private $user;
    
    private $password;
    
    private $database;
    
    private $result;
    
    const OPTIONS=4;
    
    public function __construct($options=array()){
    
    if(count($options)!=self::OPTIONS){
    
    throw new Exception('Invalid number of connection parameters');
    
    }
    
    foreach($options as $parameter=>$value){
    
    if(!$value){
    
    throw new Exception('Invalid parameter '.$parameter);
    
    }
    
    $this->{$parameter}=$value;
    
    }
    
    $this->connectDB();
    
    }
    
    // connect to MySQL
    
    private function connectDB(){
    
    if(!$this->conId=mysql_connect($this->host,$this->user,$this->password)){
    
    throw new Exception('Error connecting to the server');
    
    }
    
    if(!mysql_select_db($this->database,$this->conId)){
    
    throw new Exception('Error selecting database');
    
    }
    
    }
    
    // run query
    
    public function query($query){
    
    if(!$this->result=mysql_query($query,$this->conId)){
    
    throw new Exception('Error performing query '.$query);
    
    }
    
    return new Result($this,$this->result);
    
    }
    
    public function escapeString($value){
    
    return mysql_escape_string($value);
    
    }
    
    }
    
    // define 'Result' class
    
    class Result {
    
    private $mysql;
    
    private $result;
    
    public function __construct(&$mysql,$result){
    
    $this->mysql=&$mysql;
    
    $this->result=$result;
    
    }
    
    // fetch row
    
    public function fetchRow(){
    
    return mysql_fetch_assoc($this->result);
    
    }
    
    // count rows
    
    public function countRows(){
    
    if(!$rows=mysql_num_rows($this->result)){
    
    return false;
    
    }
    
    return $rows;
    
    }
    
    // count affected rows
    
    public function countAffectedRows(){
    
    if(!$rows=mysql_affected_rows($this->mysql->conId)){
    
    throw new Exception('Error counting affected rows');
    
    }
    
    return $rows;
    
    }
    
    // get ID form last-inserted row
    
    public function getInsertID(){
    
    if(!$id=mysql_insert_id($this->mysql->conId)){
    
    throw new Exception('Error getting ID');
    
    }
    
    return $id;
    
    }
    
    // seek row
    
    public function seekRow($row=0){
    
    if(!is_int($row)||$row<0){
    
    throw new Exception('Invalid result set offset');
    
    }
    
    if(!mysql_data_seek($this->result,$row)){
    
    throw new Exception('Error seeking data');
    
    }
    
    }
    
    }
    
    ?>

    خامسا : انشاء ملف processform.php

    وهذا الملف هو اللى راح ينفذ عملية البحث

    كود ملف processform.php

    رمز Code:
    <?php
    
    // include MySQL-processing classes
    
    require_once 'mysql.php';
    
    try{
    
    // connect to MySQL
    
    $db=new MySQL(array
    ('host'=>'localhost','user'=>'root','password'=>'root',
    'database'=>'users'));
    
    $searchterm=$db->escapeString($_GET['searchterm']);
    
    $result=$db->query("SELECT firstname, lastname,comments FROM
    users WHERE MATCH(firstname,lastname,comments) AGAINST
    ('$searchterm')");
    
    if(!$result->countRows()){
    
    echo '<div><h2>لاتوجد اى نتيجة,ارجع للخلف وعاود البحث مرة أخرى</h2></div>';
    
    }
    
    else{
    
    // display search results
    
    echo '<div><h2>Your search criteria
    returned '.$result->countRows().' results.</h2>';
    
    while($row=$result->fetchRow()){
    
    echo '<div><p><strong>First Name:
    </strong>'.$row['firstname'].'<p><p><strong>Last Name:
    </strong>'.$row['lastname'].'</p><p><strong>Comments:
    </strong>'.$row['comments'].'</p></div>';
    
    }
    
    }
    
    echo '</div>';
    
    }
    
    catch(Exception $e){
    
    echo $e->getMessage();
    
    exit();
    
    }
    
    ?>

    شرح الاجزاء المطلوب تعديلها بما يناسب طلبك:


    1- اولا تغيير بيانات الاتصال بقاعدة البيانات من خلال هذا السطر


    رمز Code:
    $db=new MySQL(array
    ('host'=>'localhost','user'=>'root','password'=>'root',
    'database'=>'users'));
    2- تغيير اسم الجدول والاعمدة المراد البحث فيها , وذلك من خلال هذا السطر


    رمز Code:
    $result=$db->query("SELECT firstname, lastname,comments FROM
    users WHERE MATCH(firstname,lastname,comments) AGAINST
    ('$searchterm')");

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

    راح يكون الناتج مثل الصورة الاتية:

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


    لتحميل ملفات الدرس كاملة : اضغــــط هـــــنا



    vista-design

    #########
    # محمد أمين #
    #########
    مــبـــرمج PHP


    برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
    مشروع البحث عن مبرمج او مطور

    مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
    www.advphp.com
    قديمة 20 - 03 - 2010, 14:15
    المشاركة 2
    صورة 'هاوي برمجة' الرمزية
    هاوي برمجة
    :: عضو نشيط ::
    تاريخ الإنضمام: 26 - 01 - 2008
    رقم العضوية : 51160
    العمر: 43
    المشاركات: 3,694
    افتراضي
    يسعدني اكون من أول الرادين عليك.......
    جزاك الله خيرا واصل تألقك تحياتي
    قديمة 20 - 03 - 2010, 14:31
    المشاركة 3
    وادنون
    :: عضو جديد ::
    تاريخ الإنضمام: 15 - 10 - 2009
    رقم العضوية : 73355
    المشاركات: 7
    افتراضي
    السلام عليكم

    شكرا لك أخي العزيز

    ولكن ألا ترى خطورة هذا المحرك
    قديمة 20 - 03 - 2010, 15:55
    المشاركة 4
    صورة 'Arab Coders Project' الرمزية
    Arab Coders Project
    مطور الويب
    تاريخ الإنضمام: 22 - 03 - 2007
    رقم العضوية : 33367
    الدولة : EGYPT
    المشاركات: 4,566
    افتراضي
    السلام عليكم

    شكرا لك أخي العزيز

    ولكن ألا ترى خطورة هذا المحرك
    اين الخطورة هل قرأت الكلاس جيدا فيه دوال لفترة المدخلات

    #########
    # محمد أمين #
    #########
    مــبـــرمج PHP


    برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
    مشروع البحث عن مبرمج او مطور

    مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
    www.advphp.com
    قديمة 20 - 03 - 2010, 16:15
    المشاركة 5
    صورة 'Bo.SaQeR' الرمزية
    Bo.SaQeR
    :: عضو نشيط ::
    تاريخ الإنضمام: 20 - 11 - 2008
    رقم العضوية : 62364
    المشاركات: 2,026
    افتراضي
    َ

    درَس جِميل جَداَ ..

    مشِكور فيسَتآ ^_^ ..
    قديمة 20 - 03 - 2010, 16:15
    المشاركة 6
    صورة 'coomweb' الرمزية
    coomweb
    :: عضو نشيط ::
    تاريخ الإنضمام: 16 - 07 - 2009
    رقم العضوية : 67627
    الدولة : ۩ Gaza ۩
    المشاركات: 780
    • أرسل رسالة بواسطة MSN إلى coomweb
    افتراضي
    جاااااااااامد وشرح رائع مشكور أخي
    PLUS MOBILE
    www.p1s.info/vb
    ثيمات - فيديو - العاب - خلفيات - برامج
    كل ما يتعلق بالموبايل





    قديمة 20 - 03 - 2010, 16:16
    المشاركة 7
    صورة 'حلم العمر' الرمزية
    حلم العمر
    :: عضو نشيط ::
    تاريخ الإنضمام: 02 - 04 - 2008
    رقم العضوية : 55640
    العمر: 28
    المشاركات: 1,403
    • أرسل رسالة بواسطة MSN إلى حلم العمر
    افتراضي
    بارك الله فيك
    كنت انوي ان احفر اسمك على قلبي
    ولكنني خشيت ان تزعجك دقات قلبي
    قديمة 20 - 03 - 2010, 17:01
    المشاركة 8
    PETR CECH
    :: عضـــو::
    تاريخ الإنضمام: 04 - 03 - 2010
    رقم العضوية : 80149
    المشاركات: 69
    افتراضي
    افضل درس لبرمجة محرك بحث حتى الآن ..

    لكن لو تشرح لنا كيف دمجه مع السمارتي يكون افضل ..
    قديمة 20 - 03 - 2010, 21:42
    المشاركة 9
    صورة 'saifss' الرمزية
    saifss
    :: عضو نشيط ::
    تاريخ الإنضمام: 28 - 10 - 2004
    رقم العضوية : 216
    الدولة : السعودية
    المشاركات: 399
    افتراضي
    رائع بارك الله فيك ... ماذا لو اردت ان يكون البحث وفق خيارات محدد من قوائم منسدله مرتبطه بقاعدة بيانات
    قديمة 21 - 03 - 2010, 00:43
    المشاركة 10
    صورة 'Arab Coders Project' الرمزية
    Arab Coders Project
    مطور الويب
    تاريخ الإنضمام: 22 - 03 - 2007
    رقم العضوية : 33367
    الدولة : EGYPT
    المشاركات: 4,566
    افتراضي
    افضل درس لبرمجة محرك بحث حتى الآن ..

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

    #########
    # محمد أمين #
    #########
    مــبـــرمج PHP


    برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
    مشروع البحث عن مبرمج او مطور

    مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
    www.advphp.com
    قديمة 21 - 03 - 2010, 23:44
    المشاركة 11
    صورة 'Arab Coders Project' الرمزية
    Arab Coders Project
    مطور الويب
    تاريخ الإنضمام: 22 - 03 - 2007
    رقم العضوية : 33367
    الدولة : EGYPT
    المشاركات: 4,566
    افتراضي
    رائع بارك الله فيك ... ماذا لو اردت ان يكون البحث وفق خيارات محدد من قوائم منسدله مرتبطه بقاعدة بيانات
    هذا تحتاج لتعديل الكلاس بحيث يكون البحث داخل نطاق جدول معين
    ان شاء الله سوف اشرحها لانها محتاج شرح أشمل وأكبر حتى تستطيع استخدامها على اى جدول
    اختلافا بعدد حقوله ونوعها

    #########
    # محمد أمين #
    #########
    مــبـــرمج PHP


    برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
    مشروع البحث عن مبرمج او مطور

    مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
    www.advphp.com
    قديمة 26 - 03 - 2010, 13:56
    المشاركة 12
    صورة 'Arab Coders Project' الرمزية
    Arab Coders Project
    مطور الويب
    تاريخ الإنضمام: 22 - 03 - 2007
    رقم العضوية : 33367
    الدولة : EGYPT
    المشاركات: 4,566
    افتراضي
    مشكور اخوى

    #########
    # محمد أمين #
    #########
    مــبـــرمج PHP


    برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
    مشروع البحث عن مبرمج او مطور

    مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
    www.advphp.com
    قديمة 26 - 03 - 2010, 14:47
    المشاركة 13
    صورة 'NabuLsi5' الرمزية
    NabuLsi5
    :: عضـــو::
    تاريخ الإنضمام: 05 - 03 - 2009
    رقم العضوية : 65474
    المشاركات: 67
    افتراضي
    بارك الله بك اخي

    وجعله في ميزان حسناتك
    قديمة 29 - 03 - 2010, 02:29
    المشاركة 15
    صورة 'Arab Coders Project' الرمزية
    Arab Coders Project
    مطور الويب
    تاريخ الإنضمام: 22 - 03 - 2007
    رقم العضوية : 33367
    الدولة : EGYPT
    المشاركات: 4,566
    افتراضي
    العفو اخوى شاكر مرورك

    #########
    # محمد أمين #
    #########
    مــبـــرمج PHP


    برمجياتى: اسكربت AraDownPro | مشروع مطورى الويب العربى
    مشروع البحث عن مبرمج او مطور

    مشروع مطورى الويب العربى لتعليم برمجة وتصميم المواقع
    www.advphp.com
    اضافة رد
    العلامات المرجعية

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


    [الحلم اصبح حقيقة] حول اى سكربت PHP الى برنامج يعمل على سطح المكتب بنائ علي طلب الاعضاء دورة برمجه سكربت اخبار للمبتدئين الدرس الاول

    أدوات الموضوع
    طرق العرض



    الساعة معتمدة بتوقيت جرينتش +3 . الساعة الآن : 11:27.
    المعهد غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
    فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
    التعليقات المنشورة لا تعبر عن رأي معهد ترايدنت ولا نتحمل أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

    جميع الحقوق محفوظة Traidnt 2015
    • 009669200920037
    • 00966138648289
    • 2051033691
    Powered by vBulletin® Version 3.8.7 .Copyright ©2000 - 2015, Jelsoft Enterprises Ltd
    SEO by vBSEO ©2011, Crawlability, Inc.