الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

انه محرك بحث بسيط ومزدوج

مغلق
بدأه Anwarica في 18 أكتوبر 2004 · 9 رد · 921 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

http://www.msdoctors.medmuseum.com/index_en.php

ولتجربة أحد نتائج البحث فمن خلال الصفحة: http://www.msdoctors.medmuseum.com/search.php?c=%D8%C8

وحاولوا تغيير كلمات البحث على قدر المستطاع

علما بأن قاعدة بياناته صغيرة جدا حتى الآن، اذا أعجبكم أضع لكم السورس، وإذا لم يعجبكم ياريت ترشدونى :)

#2

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

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#3

فى البداية محرك بحث الموقع كان أول سكريبت عملته من زماااااان وقد أبقيت عليه حتى اليوم بدون تعديل لذا ستضحك من أشياء كثيرة منها الشرط بif لأنه كان من الممكن اختزال خطوات بشكل عام وبترتيب أفضل .. وقاعدة البيانات تبعه تتكون من جدول اسمه search و3 حقول هم name, description,url وكان من المفروض وضع حقل id ولكن لأننى كنت مبتدأ فلم أضفه آنذاك :( والفورم تبع بحث الموقع تم تسمية مستطيل البحث باسم c أى input type="text" name="c".

<?
$no="<font color=#FF0000 face=Times New Roman size=5>No Results Found!</font></b> <br> <b><font face=Verdana size=2>Tip: </b></font><font face=Verdana size=2>use just 2 or 3 words to have better results</font>"; 
$nice="<b><font face=verdana size=2>Nice try! Not allowed</b></font>";?>
<b><font size="2" face="Verdana">Please choose a 
result for:<? $c=HtmlSpecialChars($c); echo " <font size=2 face=Verdana color=#FF8000>$c</font>";?></font></b>
 <!-- web search -->
<? 
if ( strlen($c) > 0 ) {
$tab=" <table border=\"1\" cellpadding=\"3\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"99%\" id=\"AutoNumber1\">
<tr>";
include('dbconnection.php'); //our database connection
$result=mysql_query("select * from search where description like '%$c%' or name like '%$c%'",$link);
while ($row=mysql_fetch_array($result)) {
echo $tab;
echo "<td width=20% background=images/bg.gif><b><font size=2 face=Verdana>Name</font></b></td><td width=80%><b><font size=2 face=Verdana>$row[name]</td></font></b></tr>";
echo "<td width=20% background=images/bg.gif><b><font size=2 face=Verdana>Description</font></b></td><td width=80%><font size=2 face=Verdana>$row[description]</td></font></tr>";
echo "<td width=20% background=images/bg.gif><b><font size=2 face=Verdana>Link</font></b></td><td width=80%><font size=2 face=Verdana><a href =$row[url]>Click here to see</a>                  <a href=#ups><img src=images/ups.gif border=\"0\" width=19 height=27></a></td></font></tr><br>";
echo "</table>";
}
if (mysql_num_rows($result)==0) { echo $no; } 
mysql_free_result ($result);
mysql_close($link); }
else { 
// nice try 
echo $nice; }

?>

هذا بالنسبة للموقع، أما المنتدى فهو phpbb والجدول المراد البحث عنه هو mphpbb_posts_text ومنه حقل post_subject ولإظهار اللينك تبع الموضوع كان يجب البحث خلال الجدول mphpbb_posts ومنه حقلtopic_id وكانت المشكلة فى ربط الجدولين :) ولكن محلولة هاهو الكود

 <!-- forum search -->

<? 
if ( strlen($c) > 0 ) {
include('dbconnection.php');
$result=mysql_query("select * from mphpbb_posts_text,mphpbb_posts where (mphpbb_posts_text.post_id=mphpbb_posts.post_id) and post_subject like '%$c%'",$link);
while ($row=mysql_fetch_array($result)) { 


echo $tab;
echo "<td width=20% background=images/bgf.gif><b><font size=2 face=Verdana>Name</font></b></td><td width=80%><b><font size=2 face=Verdana>$row[post_subject]</td></font></b></tr>";
echo "<td width=20% background=images/bgf.gif><b><font size=2 face=Verdana>Link </font></b></td><td width=80%><font size=2 face=Verdana><a href =http://www.msdoctors.medmuseum.com/forum/viewtopic.php?t=$row[topic_id]>Click to see this topic</a>                  <a href=#ups><img src=images/ups.gif border=\"0\" width=19 height=27></a></td></font></tr><br>";
echo "</table>";
}

if (mysql_num_rows($result)==0) { echo $no; } 
mysql_free_result ($result);
mysql_close($link); }
else { 
// nice try 
echo $nice; }

?>

لن أقول كيف تم ربط الجدولين فهى فزورة أو حزورة سهلة مكشوفة بالكود وأريد أن نستنتجها سويا، ممكن عمل limit لإظهار عدد النتائج التى نحتاجها (قل 20 نتيجة كل صفحة مثلا) وكذلك عمل جدول hits لعد الزيارات للوصلات المختلفة :) سأوضح غدا إن شاء الله الكود بالتفصيل ولكن سأترك لكم التفكير فى موضوع ربط الجدولين :)

#5

اللطريقة المستعملة اعجبتني علما باني لم اعرف انها كانت بهذا السهولة... و شكرا جدا على مشاركة الطريقة و الكود

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#6

العفو أخى راكان، بفكر فى عمل واحد معقد شوية واسميه extra advanced search engine ويصلح للمواقع الضخمة ولكن قد يتم استخدام oop هذه المرة .. عموما هناك خطة مستقبلية للتفكير فى هذا لمدة سنة (على ما انهى دراسة هذه السنة :) )

#7

ان شاء الله و بالتوفيق.. ممكن شرح كيفية عمل هذه الطريقة او اي معلومات عنها؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#8

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

#9

السلام عليكم :)

طريقة نيرة فعلا

لدي قاعدة بيانات فيها 5 حقول فقط لا غير

1- serial number ولا يهمني البحث فيه

2- ولدي 4 حقول ( اسم الكتاب، رقم الكتاب، رقم ال ISBN، النسخة المتوفرة)

ما أريد لهذا المحرك اللطيف الخفيف أن يعمل

1- أن يتيح البحث في قاعدة البيانات بشكل عام ، يعني word anaywhere في أي حقل من الحقوق لا يهم

2- أو يمكن الباحث من تحديد واحد من الحقول الأربعة ليحدد بحثه فيه مثلا يحدد أنه يريد أن يبحث في اسم الكتاب أو في ال ISBN

النتائج:

أريد أن يظهر النتيجة ويظهر بقية الحقول المتعلقة بها كلها

يعني لو بحث في اسم الكتاب يظهر له الكتاب + بقية المعلومات

عفوا خبرتي متواضعة جدا :(

لكن العشم في كرمكم :D

علمني ولك أجري وأجر من سأعلمه وما سأعمله إن شاء الله

:)

#10

يعنى هل المطلوب سكريبت؟

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

:)

أما عن الأفكار المطلوبة فقد أوضحتها بنفسك .. لذا همتك معنا :D

هذا الموضوع مغلق.

مواضيع مشابهة