السلام عليكــم ورحمـة الله وبركاتــه ،،
هذة دعوة للمشاركة لتطوير نظام بحث لعدة جداول في قاعدة بيانات MYSQL باستخدام PHP مع AJAX. فكرة ؟
هذا الكود جيد, و رغبت بنقلة لكم مع الحاجة الى بعض التعديلات بما يخص اللغة العربية, بماذا يساعد هذا الكود؟
لنفرض ان لديك قاعدة بيانات تحوي على اسماء طلبة , و الاسم الرباعي كاملا مثل : احمد خليل حسين الماني.
فيمكنك ان تضع في خانة البحث : ( احم ) مثلا و يظهر لك بقية الاسم بشكل اوتوماتيكي اي تلقائي. و هذا يعمل جيدا مع اللغة الانجليزية و لكن العربية بحاجة الى تعديل. يشبة الى حد ما عمل محرك البحث Googl عندما تضع بداية الكلمة و يكمل Google الباقي.
السكربت يعمل على PHP 5 , و يمكن تعديلة ليعمل على 4.
السكربت عبارة عن ملف PHP و ملف JavaScript و ملف HTML , سأضعا كلها في المرفقات.
الملف الاول و هو المهم , ملف كود PHP . و نرغب في بحثة:
// PHP5 Implementation - uses MySQLi.
// mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
$db = new mysqli('localhost', 'root' ,'', 'test');
if(!$db) {
// Show error if we cannot connect.
echo 'ERROR: Could not connect to the database.';
} else {
// Is there a posted query string?
if(isset($_POST['queryString'])) {
$queryString = $db->real_escape_string($_POST['queryString']);
// Is the string length greater than 0?
if(strlen($queryString) >0) {
// Run the query: We use LIKE '$queryString%'
// The percentage sign is a wild-card, in my example of countries it works like this...
// $queryString = 'Uni';
// Returned data = 'United States, United Kindom';
// YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
// eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
$query = $db->query("SELECT title FROM stud WHERE title LIKE '$queryString%' LIMIT 10");
if($query) {
// While there are results loop through them - fetching an Object (i like PHP5 btw!).
while ($result = $query ->fetch_object()) {
// Format the results, im using <li> for the list, you can change it.
// The onClick function fills the textbox with the result.
// YOU MUST CHANGE: $result->value to $result->your_colum
echo '<li onClick="fill(\''.$result->title.'\');">'.$result->title.'</li>';
}
} else {
echo 'ERROR: There was a problem with the query.';
}
} else {
// Dont do anything.
} // There is a queryString.
} else {
echo 'There should be no direct access to this script!';
}
}الملف الثاني و هو ملف Java Script , حملة من المرفقات و ضروري ان يتم استدعائة في صفحة البحث.
الملف الثالث و هو ملف HTML الذي يحوي Field.و بعض JS
جميع الملفات كاملة في الملف المضغوط في المرفقات.
المشكلة انة لا يعمل جيدا مع اللغة العربية, و لذا بحاجة لحل باستخدام iconv و التي يجب ان تكون مدعومة من Apache server.
\ محمد