Intereting Posts
интерактивное управление программой с использованием php Создание ключа PHP RSA AWS: политика пользователя IAM для SES не работает CodeIgniter / jQuery – вызов Ajax возвращает полную html-страницу вместо моего эха XmlHTTPRequest: "Ошибка анализа XML: элемент не найден" PHP Variable vs Array vs Object Эффективность поиска массива и поиск в тексте … Что лучше? Буферизация вывода PHP, ошибка кодирования содержимого, вызванная ob_gzhandler? Удалите автоматически добавленную <p> со страницы, которая не имеет литерального содержимого (использует короткие коды) Передача данных с JavaScript на PHP Разница между sleep () и usleep () в PHP Как изменить рейтинг php с 5,5 до 5,3 sonataNotificationBundle, электронные письма, которые хранятся в базе данных, но потребитель swiftmailer не запускается, и никакие электронные письма не отправляются чувствительность к регистру на Mac для file_exists ()? PHP / JSON – удалять каждое появление определенного символа перед другим персонажем

Использование PHP, MSSQL, JQuery для мгновенного поиска

Я пытаюсь реализовать функцию мгновенного поиска, используя PHP, jQuery и базу данных MS SQL. Честно говоря, я не уверен, какая у меня проблема. Я не получаю никаких ошибок php, и единственное, что я мог подумать, это то, что в связи с базой данных есть некоторая путаница. У меня есть файлы на Windows Server 2003, и я пытаюсь получить доступ к базе данных MSSQL на другом сервере под управлением Windows Server 2008. Я совершенно новичок в этих серверах и программирую через них. (Я ИТ-специалист.) Вот код, который я использую, он был изменен из учебника для создания мгновенного поиска. Это код, который у меня есть на данный момент.

Файл PHP:

<?php if(!empty($_GET['q'])) { search(); } function search() { $server = 'Windows2008ServersName'; $con = mssql_connect($server, 'username', 'password') or die("Couldn't connect to SQL Server on $server"); mssql_select_db('dbname', $con); $q = str_replace("'","''",$_GET['q']); $sql = mssql_query(" SELECT db.First_Name, SUBSTR(db.Last_Name,1,300) FROM db WHERE db.First_Name LIKE '%{$q}%' OR db.Last_Name LIKE '%{$q}%' ") or die ( 'Query Error' ); //Create an array with the results $results=array(); while($v = mssql_fetch_object($sql)){ $results[] = array( 'title'=>$v->title, 'post'=>$v->post ); } //using JSON to encode the array echo json_encode($results); } ?> 

Файл Javascript:

 var runningRequest = false; var request; //Identify the typing action $('input#q').keyup(function(e){ e.preventDefault(); var $q = $(this); //get the letter //if it's not a search term return false if($q.val() == ''){ $('div#results').html(''); return false; } //Abort opened requests to speed it up if(runningRequest){ request.abort(); } runningRequest=true; request = $.getJSON('search.php',{ q:$q.val() },function(data){ showResults(data,$q.val()); runningRequest=false; }); //Create HTML structure for the results and insert it on the result div function showResults(data, highlight){ var resultHtml = ''; $.each(data, function(i,item){ resultHtml+='<div class="result">'; resultHtml+='<h2><a href="#">'+item.title+'</a></h2>'; resultHtml+='<p>'+item.post.replace(highlight, '<span class="highlight">'+highlight+'</span>')+'</p>'; resultHtml+='<a href="#" class="readMore">Read more..</a>' resultHtml+='</div>'; }); $('div#results').html(resultHtml); } $('form').submit(function(e){ e.preventDefault(); }); }); 

HTML-файл:

 <html> <head> <title>Instant Search</title> <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="js/search.js"></script> <style> /*css*/ </style> </head> <body> <form method="get" action=""> <input type="text" id="q" name="q" /> <input type="submit" value="Search" /> </form> <div id="results"></div> </body> </html> 

PHP установлен на веб-сервере, но я не уверен, что он установлен на сервере MSSQL, может ли это быть проблемой? Я не очень хорошо разбираюсь в том, как нужно настраивать серверы для работы друг с другом. Особенно в такой ситуации.

Не думайте, что вы хотите «$» на q var в javascript; это может быть разрешено (я не думаю, что это так, но я не пробовал), но это не обязательно, и это запутывает.

Там может быть больше, но это всколыхнулось на меня так же плохо.