اللهم لك الحمد ، ومنك الفرج ، واليك المشتكي ، وأنت المستعان ، ولا حول ولا قوة الا بك .. |
![]() | ![]() |
| الصحيفة التقنية | الصفحة الرئيسية | مركز تحميل مطور | استخدم ختم مطور | قوِ موضوعك هام | أعلن في مُطِّورْ | شرح السي بانل جديد | افحص البيج رانك | دعم فني مجاني | |
| |
| |||||||
| لغات برمجة مواقع PHP, ASP, Java Script, Perl دورات، دروس، نقاشات، وتبادل خبرات في كلاً من php asp java scripts perl وغيرها. |
![]() |
| | LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
#1
| ||||
| ||||
| أخطر درس لكيفية برمجة محرك بحث متصل بقواعد البيانات يصلح لاى اسكربت سجل دخولك او إضغط هنا للتسجيل ![]() ![]() يعتبر محرك البحث من أهم المميزات تميز اى اسكربت ذو برمجة راقية , فمحرك البحث يعتبر الأداة المثالية للوصول السريع لما يبحث عنه زائر موقعك. ولعل أهم شىء فى برمجة اى اسكربت هو سهولة الاستخدام من قبل الزائر. فى هذا الدرس سوف نتعرف على كيفية برمجة محرك بحث داخلى يقوم بالبحث فى قواعد البيانات عن اى كلمة او جملة تكتبها فى محرك البحث الداخلى بالموقع ,ويمكنك من خلال هذا الدرس ان تقوم بعمل خاصية البحث فى اى اسكربت تقوم ببرمجته مهما كانت عدد جداوله ومهما كانت عدد حقوله , افهم فكرة الدرس واطلق العنان لطموحاتك خطوات تطبيق الدرس: 1-انشاء قاعدة بيانات كمثال حتى يتم البحث فيها 2-انشاء ملف form.htm الخاص بعمل مستطيل البحث 3-انشاء ملف style.css الخاص بتجميل شريط البحث 4-انشاء ملف mysql.php الخاص بالاتصال ومحاكاة قاعدة البيانات وتنفيذ عملية البحث فى الجداول والحقول 5-انشاء ملف processform.php الذى سوف يقوم تنفيذ الكلمة او الجملة التى تم كتابتها فى محرك البحث ليتم البحث عنها اولا: انشاء قاعدة البيانات سوف نقوم بانشاء قاعدة بيانات وراح نسميها users, وبداخلها سوف ننشأ جدول اسمه users وعدد حقوله 5 حقول -id -firstname -lastname -comments ![]() تمام الحين راح ندخل بعض البيانات فى هذا الجدول حتى نستخدمها كمثال للبحث عنها انا قمت بادخال بعض الاسماء وبياناتهم شوف الصورة ![]() تمام انتهينا من انشاء قاعدة البيانات ......... يوجد خطوة مهمة جدا وهى اننا نريد ان نقوم بعمل Index من النوع fulltext للجدول اللى راح نبحث فيه ولعمل ذلك فقط قم بعمل هذا الامر من خلال اختيار زر sql لتنفيذ أمر sql كود: ALTER TABLE users ADD FULLTEXT(firstname, lastname, comments); بحيث راح يكون الناتج كالصورة الاتية: ![]() ثانيا: انشاء ملف form.htm وهو عبارة عن صفحة الفورم الخاصة بمستطيل البحث الذى سوف سيكون محرك البحث وانا استخدمت بعض الجافا اسكربت لتعطى لمسة جمالية للفورم وجعلنا action هذا الفورم هو تنفيذ ملف processform.php الذى سوف يشرح فيما بعد كود ملف form.htm كود: <!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>
<**** ************"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 سوف نقوم بتجميل الفورم الخاص بنا فى الصفحة السابقة وهذا هو كود الملف كود: 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 كود: <?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 كود: <?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- اولا تغيير بيانات الاتصال بقاعدة البيانات من خلال هذا السطر كود: $db=new MySQL(array
('host'=>'localhost','user'=>'root','password'=>'root',
'database'=>'users')); كود: $result=$db->query("SELECT firstname, lastname,comments FROM
users WHERE MATCH(firstname,lastname,comments) AGAINST
('$searchterm')"); وبهيك عند تنفيذ البحث عن اى كلمة ولنفرض اننا راح نبحث عن كلمة call و mazda راح يكون الناتج مثل الصورة الاتية: ![]() لتحميل ملفات الدرس كاملة : اضغــــط هـــــنا vista-design |
| | رقم المشاركة : [2] |
| مُطوِّرْ مسؤول ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل درس رائع .. يعطيك العافية .. ننتظر المزيد من هذه الدروس الرائعة .. بارك الله فيك .. |
| | |
| | |
| | رقم المشاركة : [3] |
| اداري ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
| | |
| | |
| | رقم المشاركة : [4] |
| مطور جديد ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل ارجو تحديد نوع ال sql المستخدمة في الدرس لاني احتاجه وشكرا على الدرس |
| | |
| | |
| | رقم المشاركة : [5] |
| مطور جديد ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل |
| | |
| | |
| | رقم المشاركة : [6] | |
| :: + عضو شرف + :: ![]() ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل اقتباس:
ولماذا تتعب حالك وتسويها بالدوس طالما ممكن تسويها بضغطة زر وتوفر وقتك لما هو اهم | |
| | ||
| | |
| | رقم المشاركة : [7] |
| ملقي (دورة الـ HTML) ![]() | سجل دخولك او إضغط هنا للتسجيل يعطيك الف الف عاافية اخوي فيستاا |
| | |
| | |
| | رقم المشاركة : [8] |
| مطور جديد ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل تحياتي لك انا عندي ال sql ولكني لم اجد هذا الزر الذي يسهل عملية انشاء قاعدة البيانات هل يمكنك مساعدتي بتفاصيل اكثر عن قواعد البيانات |
| | |
| | |
| | رقم المشاركة : [9] |
| مطور خبير ![]() ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل |
| | |
| | |
| | رقم المشاركة : [10] |
| :: + فريق التنظيم والمتابعة + :: ![]() ![]() ![]() ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل درس رائع .. يعطيك العافية .. ننتظر المزيد من هذه الدروس الرائعة .. بارك الله فيك .. جاري التجربة |
| | |
| | |
| | رقم المشاركة : [11] |
| مطور جديد ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل و لكن أريد درس عمل محرك بحث بلغة الـ asp.net |
| | |
| | |
| | رقم المشاركة : [12] |
| مطور محترف ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل |
| | |
| | |
| | رقم المشاركة : [13] |
| مطور محترف ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل لا مليون مرة علشان دم الشهداء وعلشان مستقبل ولادنا وعلشان الغلبان والضعيف يعرف ياخد حقه وعلشان اعيش بكرامتي في بلدي |
| | |
| | |
| | رقم المشاركة : [14] |
| مطور محترف ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل |
| | |
| | |
| | رقم المشاركة : [15] |
| مطور محترف ![]() ![]() ![]() ![]() | سجل دخولك او إضغط هنا للتسجيل |
| | |
| | |
![]() |
| العلامات المرجعية |
مواضيع جديدة في قسم لغات برمجة مواقع PHP, ASP, Java Script, Perl |
| |
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
المواضيع المتشابهه | ||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| اسكربت اختصار الروابط بمشاركة الارباح برمجة دوت كوم | brmaga.com | عروض تصميم المواقع، عروض برمجة المواقع، وطلبات الأعضاء | 2 | 31-03-2011 08:05 PM |
| أستفسار عن كيفية ربط السكربت بقواعد البيانات | نبيلة حسن | دروس و برامج تصميم المواقع وبرامج التصميم | 0 | 12-10-2010 12:00 AM |
| [ طلب برمجة ] : شرح اسكربت الابلودر المتميز من برمجة HostQuad.com | hostquad.com | عروض تصميم المواقع، عروض برمجة المواقع، وطلبات الأعضاء | 2 | 23-10-2009 01:01 AM |