Помогите пожалуйста найти ошибку в скрипте

accembler

Новичок
Здравствуйте, уважаемые, подскажите, пожалуйста, в чем может быть проблема.

есть
форма поиска+js
PHP:
<!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" xml:lang="ru" lang="ru" >
<head>
 <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
</head>
<script type='text/javascript'> 
    //Функция возвращает объект XMLHttpRequest
function getXmlHttpRequest(){
    if (window.XMLHttpRequest){
        try {
            return new XMLHttpRequest();
        } 
        catch (e){}
    } 
    else if (window.ActiveXObject){
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){}
        try {
            return new ActiveXObject('Microsoft.XMLHTTP');
        } 
        catch (e){}
    }
    return null;
}
    // Очистка списка
function clearList()
{
    var ulResult = document.getElementById("ulResult");
    while (ulResult.hasChildNodes())
        ulResult.removeChild(ulResult.lastChild);
}
    // Добавление нового элемента списка
function addListItem(text){
    if (text.length == 0) return;
    var ulResult = document.getElementById("ulResult");
    var li = document.createElement("li");   
    ulResult.appendChild(li);
    var liText = document.createTextNode(text);  
    li.appendChild(liText);
}
    //Поиск совпадения
function searchNum(){
    // Параметры поиска
    var title = document.getElementById("txtTitle").value;
    // Формирование строки поиска
    var searchString = "query=" + encodeURIComponent(title);
    // Запрос к серверу
    var req = getXmlHttpRequest();
    req.onreadystatechange = function(){
        if (req.readyState != 4) return;
        var responseText = new String(req.responseText);
        var num = responseText.split('\n');
        clearList();
        for (var i = 0; i < num.length; i++)
            addListItem(num[i]);
    }           
    // Метод POST
    req.open("POST", "/search.php", true);
    // Установка заголовков
    req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    req.setRequestHeader("Content-Length", searchString.length);           
    // Отправка данных
    req.send(searchString);                    
}
</script>
<body>
<h3 style="text-align:center;">Поиск по сайту AJAX + PHP + MySQL</h3><br />
<div style="border:2px solid blue; padding: 50px 0;">
<form onsubmit="return false"> <fieldset style="width: 300px; margin: 0 auto; ">
<legend>Поиск по сайту AJAX + PHP + MySQL</legend> 
<div><label for="txtTitle">Поисковый запрос</label> <input onkeyup="searchNum()" id="txtTitle" type="text" name="title"/>
</div> <button onclick="searchNum()">Поиск</button> </fieldset>
</form>
<ul id="ulResult" style = "list-style: none; text-align: center"></ul>
</div>

</body>
</html>
и search.php
PHP:
<?php 
header ("Content-type:text/html; charset=utf-8");

/////////////// Определяем используемые функции //////////////////

 /* Открываем соединение с базой данных*/
function connectDB (){
// Определяем константы для соединения с базой данных
define('DB_HOST', 'idb3.majordomo.ru');
define('DB_USER', 'u140449');
define('DB_PASS', 'nevaelectronsql');
define('DB_NAME', 'b140449_catalog');

//Пытаемся соединится с базой данных
$dbconn = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  or die("Ошибка соединения с базой данных! " . mysql_error());
//и выбрать таблицу
mysql_select_db(DB_NAME); 
// Устанавливаем кодировку
mysql_query('SET NAMES utf-8');
//Возвращаем дескриптор соединения
return $dbconn;
}

/*Закрываем соединение с базой данных*/
function closeDB($dbconn){
mysql_close($dbconn);
}

/*Обработка поискового запроса*/
function search ($query) { 
$text = '';

// Проводим фильтрацию данных
$query = trim($query);                     // Обрезаем пробелы и спецсиволы
$query = strip_tags($query);               // Удаляем HTML и PHP теги
$query = mysql_real_escape_string($query); // Экранируем специальные символы

	
//Поисковый запрос не пустой?
if (!empty($query)){
  if (strlen($query) < 4) {
    $text = 'короткий поисковый запрос';
  }elseif (strlen($query) > 128) {
    $text = 'длинный поисковый запрос';
  } else {
    //Формируем строку поискового запроса 
 $sql = "use b140449_catalog;
SELECT ID, NAME, PRODUCER, PRICE_1, PRICE_2, PRICE_3, PRICE_4
 FROM component 
 WHERE NAME LIKE '%$$query%' OR PRODUCER LIKE '%$query%'";
// и выполняем его
    $result = mysql_query($sql);
    $end_result = '';
    if(mysql_num_rows($result) > 0) {
       while ($row = mysql_fetch_object($result)){   
          $end_result .=  $row->title. "\n";
       }
       $text =  $end_result;
    } else {
        $text =  'По вашему запросу ничего не найдено';
    }	
  } 
}else {
  $text = 'Задан пустой поисковый запрос.';
}
//Возвращаем сформированную строку поисковой выдачи
return $text; 
}
///////////// Сам скрипт обработчик ///////////////
if (isset ($_POST['query']) && !empty($_POST['query'])){ 
  // Открываем соединение с базой данных
  $connect = connectDB();
  $search_result = search ($_POST['query']); 
  echo $search_result; 
  // Закрываем соединение с  базой данных
  closeDB ($connect);
}
?>
проблема заключается в том, что при любом запросе, ответов sql не дает никаких, тоесть "по вашему запросу ничего не найдено". Заранее благодарен.
 

accembler

Новичок
Прощу прощения, воспользовался гайдом, ошибки в коде поправил. Ошибок никаких не возникает, но sql возвращает только 0. при этом, когда выполняю на сервере - результат возвращает, грешу на php все-таки.
PHP:
 $sql = "SELECT NAME, PRODUCER, PRICE_1, PRICE_2, PRICE_3, PRICE_4
 FROM component 
 WHERE NAME LIKE '%$query%' OR PRODUCER LIKE '%$query%'";
 

Фанат

oncle terrible
Команда форума
а в чём тогда заключается "прегрешение" РНР?
 

accembler

Новичок
быть может я что-то, в php некорректно указал, но ошибок, явно, не вижу
 

Фанат

oncle terrible
Команда форума
Если ты подозреваешь, что что-то в РНР некорректно указал, то почему бы это что-то в РНР не вывести и не посмотреть?
 

Фанат

oncle terrible
Команда форума
что там написано про проблемы с SQL? В самом начале почти
 

Фанат

oncle terrible
Команда форума
не знаю, что такое js debugger и unsafe header "Content-Length"
у тебя, вроде, проблема с SQL была, а не с JS?
 

accembler

Новичок
PHP:
echo('['.mysql_errno().'] ['.mysql_error().']');
exit; 
echo mysql_errno($sql) . ": " . mysql_error($sql) . "\n";
в коде проверяет sql. да, но я решил уже всем чем только можно попробовать проверить
 

Фанат

oncle terrible
Команда форума
код, который ты процитировал выше, не проверяет SQL.
он проверяет результат выполнения запроса.

Без контекста, кстати, очень сложно понять, там ли ты проверяешь этот результат, где надо.

но сейчас речь не о результате выполнения запроса, а о самом запросе.
почему ты тебе не
а) вывести его на экран и не посмотреть глазами - что с ним не так
б) взять этот выведенный на экран запрос и выполнить в консоли
?
 

Фанат

oncle terrible
Команда форума
запрос точно этот же самый? А как ты проверил?
а здесь у тебя что - не сервер? а данные то у тебя здесь есть? А как ты проверил?
 

accembler

Новичок
запрос тот же самый, единственно, перед ним выбрал базу
PHP:
use b_;
и вконце запроса ";"
ну и вместо query валидное значение поставил.
проверил выполнив запрос из админки mysql.
 
Сверху