Помогите с поиском

4ester

Новичок
Помогите с поиском

Вообщем нашёл скрипт поиска по базам MySQL и переделал его под себя. Однако, вместо результата поиска
выводится пустая страничка. Не могу понять где ошибка (у меня mysql 5.0.67; php 5.2.9; apache 2.2.10)
Вот собственно скрипты:

formp.php
PHP:
<form action="poiskmag.php" method="post">
Поиск<br><input type="text" name="dan" size="60" value="">
<input type="submit" name="submit" value="Искать">
<input type="reset" name="reset" value="Очистить">
</form>
poiskmag.php
PHP:
<?php

$link = mysql_connect("localhost", "root", "16061994") or die("Не соединилось!!!");
mysql_select_db("test") or die("Не найдена БД");

$query = "SELECT opis, price FROM obiva WHERE '%dan%'";
$result = mysql_query($query) or die("Запрос ошибочный");

print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
print "\t<tr>\n";
for ($i=1;$i<=4;$i++) { print "\t\t<td>$line[$i]</td>\n"; }
print "\t</tr>\n";
}

print "</table>\n";
mysql_free_result($result);
mysql_close($link);
?>
 

Фанат

oncle terrible
Команда форума
запрос WHERE '%dan%' не имеет смысла.
надо написать имя поля, и что ищем.

сначала надо потренироваться просто а запросами, прописанными в скрипте
потом научиться составлять запрос из переменных
и только потом писать получение их из формы
 

vasilils

Новичок
вот так попробуй WHERE {имя поля где искать} LIKE('%строка запроса%')
 

4ester

Новичок
Автор оригинала: *****
запрос WHERE '%dan%' не имеет смысла.
надо написать имя поля, и что ищем.

сначала надо потренироваться просто а запросами, прописанными в скрипте
потом научиться составлять запрос из переменных
и только потом писать получение их из формы
т.е. вместо '%dan%' вставить название поля,например, 'opis'

Ну а вообще задача стоит такая:
есть таблица obiva в ней всего 2 колонки: opis и price
Если слово введённое в форму поиска совпадает с данными содержащимися в таблице то в результате должна выводится целая строка.
Например,
-----------------------------------------------------------------------------------------------------------------------------------------------------
opis | price |
_____________________________________________________________________________________________
Turbo Pascal для студентов и школьников | 50 грн |
_____________________________________________________________________________________________
Machine Head Elegies | 20 грн |
_____________________________________________________________________________________________

Пользователь ввёл слово Turbo
И в результате получилася строка
-----------------------------------------------------------------------------------------------------------------------------------------------------
opis | price |
_____________________________________________________________________________________________
Turbo Pascal для студентов и школьников | 50 грн |
_____________________________________________________________________________________________
 

Фанат

oncle terrible
Команда форума
нет, надо составить условие, по которому база будет искать

where opis like '%Turbo%'

попробуй выполнить этот запрос
 

4ester

Новичок
Автор оригинала: vasilils
вот так попробуй WHERE {имя поля где искать} LIKE('%строка запроса%')
Всё равно пустая страница
Вот запрос:
PHP:
$query = "SELECT opis, price FROM obiva WHERE opis LIKE '%dan%'";
-~{}~ 18.11.09 22:23:

Автор оригинала: *****
нет, надо составить условие, по которому база будет искать

where opis like '%Turbo%'

попробуй выполнить этот запрос
Так всё получается
Однако, какой тогда смысл в таком поиске
 

Фанат

oncle terrible
Команда форума
Смысл в том, чтобы делать все постепенно.
Я писал выше программу, по которой мы будем действовать.

Следующий этап - получить с помощью нашей программы на PHP
строку SELECT opis, price FROM obiva where opis like '%Turbo%'
 

4ester

Новичок
Автор оригинала: *****
Смысл в том, чтобы делать все постепенно.
Я писал выше программу, по которой мы будем действовать.

Следующий этап - получить с помощью нашей программы на PHP
строку SELECT opis, price FROM obiva where opis like '%Turbo%'
этот запрос работает
 

Фанат

oncle terrible
Команда форума
Это не запрос. Это строка.
И ее нам нужно получить
 

ArkDoom

Новичок
4ester, ты сказал что у тебя не работает запрос, тебе сказали в чем дело......
Фана т тебе писал же, сначала надо потренироваться просто а запросами, прописанными в скрипте
потом научиться составлять запрос из переменных
и только потом писать получение их из формы =)

Просто вместо турбо...ты вставишь потом переменную. и т.п. =)
 

4ester

Новичок
с запросом я уже разобрался
а с остальным мягко говоря не очень
не получается вывести результат поиска в таблицу
вот код

<?php

if (isset($_REQUEST['dan']))
{
$dan = $_REQUEST['dan'];

//-------------------//
$link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");
mysql_query("/*!40101 SET NAMES 'cp1251' */") or die("Error: " . mysql_error());
mysql_select_db("test") or die("Не найдена БД");
$query = "SELECT opis, price FROM obiva WHERE opis LIKE '%$dan%'";
$result = mysql_query($query) or die("Запрос ошибочный");
$line = mysql_fetch_array($result,MYSQL_NUM);
//-------------------//
$outData = "<p>Ничего не найдено</p>" ;
if($line)
{
$out = "<table>\n";
$end = "</table>\n";
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$out .= "<tr>\n<td>Описание - " .$row[0] ." Стоимость - " .$row[1] ."</td>\n</tr>\n";
}
$outData = $out.$end;
}

}
echo $outData;
?>

если кто-нибудь найдёт ошибку отпишитеся пожалуйста
 

StiM

Новичок
PHP:
<?php

if (isset($_GET['dan']))
{
$dan = $_GET['dan'];

//-------------------//
$link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");
mysql_query("SET NAMES cp1251") or die("Error: " . mysql_error());
mysql_select_db("test") or die("Не найдена БД");
$query = "SELECT opis, price FROM obiva WHERE opis LIKE '%".$dan."%'";
$result = mysql_query($query) or die("Запрос ошибочный");
$line = mysql_fetch_array($result,MYSQL_NUM);
//-------------------//
$outData = "<p>Ничего не найдено</p>" ;
if($line)
{
$out = "<table>\n";
$end = "</table>\n";
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$out .= "<tr>\n<td>Описание - " .$row[0] ." Стоимость - " .$row[1] ."</td>\n</tr>\n";
}
$outData = $out.$end;
}

}
echo $outData;
?>
 

4ester

Новичок
Автор оригинала: StiM
PHP:
<?php

if (isset($_GET['dan']))
{
$dan = $_GET['dan'];

//-------------------//
$link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");
mysql_query("SET NAMES cp1251") or die("Error: " . mysql_error());
mysql_select_db("test") or die("Не найдена БД");
$query = "SELECT opis, price FROM obiva WHERE opis LIKE '%".$dan."%'";
$result = mysql_query($query) or die("Запрос ошибочный");
$line = mysql_fetch_array($result,MYSQL_NUM);
//-------------------//
$outData = "<p>Ничего не найдено</p>" ;
if($line)
{
$out = "<table>\n";
$end = "</table>\n";
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$out .= "<tr>\n<td>Описание - " .$row[0] ." Стоимость - " .$row[1] ."</td>\n</tr>\n";
}
$outData = $out.$end;
}

}
echo $outData;
?>
тоже не работает
 
Сверху