Спешу поделиьтся проблемой...
Написал по примеру скрипт, все вродебы ничего работает, но...
к примеру в базе есть записи "search"и "video"
в результатх поиска отлично выдает результаты по запросу search и по запросу video, а вот по запросу "video search" выдает ошибку вместе с сообщением "No resuts found"
Ну, и, сообственно скрипт...
<?php
// get data
$button = $_GET['submit'];
$search = $_GET['search'];
// data input test
if (!$button )
{
echo "You did not enter a keyword";
}
else
// search results
if (strlen($search) <=2)
{
echo "Search term is too short.";
}
else
{
echo "You searched for <b>$search </b> <hr size='1'>";
//database connection
mysql_connect("localhost", "Nikage", "12345");
mysql_select_db("new_db");
// explode our search term\
$search_exploded = explode (" ", $search);
foreach ($search_exploded as $search_each)
{
// construct query
$x++;
if ($x==1)
{
$construct .= "keywords LIKE '%$search_each%'";
}
else
{
$construct .= " OR keywods LIKE '%$search_each%'";
}
}
// echo out construct
$construct = "SELECT * FROM searchengine WHERE $construct";
$run = mysql_query ($construct);
$foundnum = mysql_num_rows($run);
if ($foundnum==0)
{
echo "No results found.";
}
else
{
echo "$foundnum results found!<p></p>";
while ($runrows = mysql_fetch_assoc($run))
{
// get data
$title = $runrows['title'];
$desc = $runrows['description'];
$url = $runrows['url'];
echo "<b>$title</b></br>
$desc</br>
<a href='$url'>$url</a><p></p>";
}
}
}
?>
Спустя 4 минуты, 1 секунда (15.05.2011 - 22:26) Krevedko написал(а):
после
$construct = "SELECT * FROM searchengine WHERE $construct";
напиши
echo $construct;
посмотрим, что в запросе содержиться. ессно с двумя словами этими твоими
$construct = "SELECT * FROM searchengine WHERE $construct";
напиши
echo $construct;
посмотрим, что в запросе содержиться. ессно с двумя словами этими твоими
Спустя 7 минут, 55 секунд (15.05.2011 - 22:34) Krevedko написал(а):
кстати я нигде не увидел, где у тебя объявляется
$x которое потом
$x++;
$x которое потом
$x++;
Спустя 3 минуты, 58 секунд (15.05.2011 - 22:38) Nikage написал(а):
Цитата (Krevedko @ 15.05.2011 - 19:26) |
после $construct = "SELECT * FROM searchengine WHERE $construct"; напиши echo $construct; посмотрим, что в запросе содержиться. ессно с двумя словами этими твоими |
SELECT * FROM searchengine WHERE keywords LIKE '%video%' OR keywods LIKE '%search%'
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in V:\home\search.com\www\search.php on line 73
No results
Спустя 4 минуты, 5 секунд (15.05.2011 - 22:42) Nikage написал(а):
Цитата (Krevedko @ 15.05.2011 - 19:34) |
кстати я нигде не увидел, где у тебя объявляется $x которое потом $x++; |
На сколько я понял $x увеличивается с кажым проходом цикла, по крайней мере так было в примере
Спустя 6 минут, 36 секунд (15.05.2011 - 22:49) Krevedko написал(а):
Цитата |
На сколько я понял $x увеличивается с кажым проходом цикла, по крайней мере так было в примере |
это понятно. просто изначально его надо задать. ну написать где-то сверху (до цикла) $x = 0;
Может оно и написано, просто тут я этого не вижу.
Что касается ошибки. keywods -слово неверное
опечатка в OR
Спустя 8 минут (15.05.2011 - 22:57) Krevedko написал(а):
получилось ? ну слава богу )
обращайтесь
обращайтесь