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

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

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


اضافة رد
رقم المشاركة # 1  
أضيفت بتاريخ 20 - 03 - 2010 عند الساعة 13:53
صورة 'Arab Coders Project' الرمزية
Arab Coders Project
مطور الويب
Arab Coders Project غير متواجد حاليآ بالمنتدى
بيانات موقعي
اصدار المنتدى: منتج اخر
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الإقامة: EGYPT
المشاركات: 4,545
قوة السمعة : 2092
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,402
قوة السمعة : 113
افتراضي

يسعدني اكون من أول الرادين عليك.......
جزاك الله خيرا واصل تألقك تحياتي

أضيفت بتاريخ 20 - 03 - 2010 عند الساعة : 14:31
رقم المشاركة # 3
:: عضو جديد ::
تاريخ الإنضمام: 15 - 10 - 2009
رقم العضوية : 73355
المشاركات: 7
قوة السمعة : 50
افتراضي

السلام عليكم

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

ولكن ألا ترى خطورة هذا المحرك

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

السلام عليكم

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

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


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


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

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

َ

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

مشِكور فيسَتآ ^_^ ..

GamesHost | Twitter | PS4:Al-SaQeR | 2B2FD5C4
أضيفت بتاريخ 20 - 03 - 2010 عند الساعة : 16:15
رقم المشاركة # 6
:: عضو نشيط ::
صورة 'coomweb' الرمزية
تاريخ الإنضمام: 16 - 07 - 2009
رقم العضوية : 67627
الإقامة: ۩ Gaza ۩
المشاركات: 780
قوة السمعة : 403
أرسل رسالة بواسطة MSN إلى coomweb
افتراضي

جاااااااااامد وشرح رائع مشكور أخي

PLUS MOBILE
www.p1s.info/vb
ثيمات - فيديو - العاب - خلفيات - برامج
كل ما يتعلق بالموبايل





أضيفت بتاريخ 20 - 03 - 2010 عند الساعة : 16:16
رقم المشاركة # 7
:: عضو نشيط ::
صورة 'حلم العمر' الرمزية
تاريخ الإنضمام: 02 - 04 - 2008
رقم العضوية : 55640
العمر: 28
المشاركات: 1,403
قوة السمعة : 192
أرسل رسالة بواسطة MSN إلى حلم العمر
افتراضي

بارك الله فيك

كنت انوي ان احفر اسمك على قلبي
ولكنني خشيت ان تزعجك دقات قلبي
أضيفت بتاريخ 20 - 03 - 2010 عند الساعة : 17:01
رقم المشاركة # 8
:: عضـــو::
تاريخ الإنضمام: 04 - 03 - 2010
رقم العضوية : 80149
المشاركات: 69
قوة السمعة : 55
افتراضي

افضل درس لبرمجة محرك بحث حتى الآن ..

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

أضيفت بتاريخ 20 - 03 - 2010 عند الساعة : 21:42
رقم المشاركة # 9
:: عضو نشيط ::
صورة 'saifss' الرمزية
تاريخ الإنضمام: 28 - 10 - 2004
رقم العضوية : 216
الإقامة: السعودية
المشاركات: 399
قوة السمعة : 49
أرسل رسالة بواسطة MSN إلى saifss أرسل رسالة بواسطة Skype™ إلى saifss
افتراضي

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

أضيفت بتاريخ 21 - 03 - 2010 عند الساعة : 00:43
رقم المشاركة # 10
مطور الويب
صورة 'Arab Coders Project' الرمزية
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الإقامة: EGYPT
المشاركات: 4,545
قوة السمعة : 2092
افتراضي

افضل درس لبرمجة محرك بحث حتى الآن ..

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


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


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

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

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


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


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

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

مشكور اخوى


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


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

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

بارك الله بك اخي

وجعله في ميزان حسناتك

أضيفت بتاريخ 27 - 03 - 2010 عند الساعة : 02:19
رقم المشاركة # 14
:: عضو نشيط ::
صورة 'بوكصا' الرمزية
تاريخ الإنضمام: 15 - 10 - 2009
رقم العضوية : 72803
الإقامة: المغرب
العمر: 23
المشاركات: 476
قوة السمعة : 157
أرسل رسالة بواسطة MSN إلى بوكصا
أضيفت بتاريخ 29 - 03 - 2010 عند الساعة : 02:29
رقم المشاركة # 15
مطور الويب
صورة 'Arab Coders Project' الرمزية
تاريخ الإنضمام: 22 - 03 - 2007
رقم العضوية : 33367
الإقامة: EGYPT
المشاركات: 4,545
قوة السمعة : 2092
افتراضي

العفو اخوى شاكر مرورك


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


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

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

العلامات المرجعية

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

غلق/فتح (الكل) ضوابط المشاركة
لا يمكنك اضافة مواضيع جديدة
لا يمكنك اضافة مشاركات
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

رمز [IMG] : متاحة
رمز HTML : معطّلة
المراجع : معطّلة
Refbacks are متاحة



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


Powered by vBulletin® Version 3.8.7 .Copyright ©2000 - 2014, Jelsoft Enterprises Ltd
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.
Google

SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.