2014-02-18 3 views
0

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

ошибка 1

"(!) Notice: Undefined variable: x in C:\wamp\www\search.php on line 21" 

ошибка 2

"(!) Notice: Undefined variable: construct in C:\wamp\www\search.php on line 23" 

вот мой код мой index.php

<html> 
<head> 
<title>Title of your search engine</title> 
</head> 
<body> 
<form action='search.php' method='GET'> 
<center> 
<h1>My Search Engine</h1> 
<input type='text' size='90' name='search'></br></br> 
<input type='submit' name='submit' value='Search source code' ></br></br></br> 
</center> 
</form> 
</body> 
</html> 

вот мой код search.php

<?php 

$button = $_GET ['submit']; 
$search = $_GET ['search']; 

if(!$button){ 
echo "you didn't submit a keyword"; 
} 
else 
{ 
if(strlen($search)<=1){ 
echo "Search term too short"; 
}else{ 
echo "You searched for <b>$search</b> <hr size='1'></br>"; 
mysql_connect("localhost","root",""); 
mysql_select_db("search"); 

$search_exploded = explode (" ", $search); 

foreach($search_exploded as $search_each) 
{ 
$x++; 
if($x==1) 
$construct .="keywords LIKE '%$search_each%'"; 
else 
$construct .="AND keywords LIKE '%$search_each%'"; 

} 

$construct ="SELECT * FROM searchengine WHERE $construct"; 
$run = mysql_query($construct); 

$foundnum = mysql_num_rows($run); 

if ($foundnum==0){ 
echo "Sorry, there are no matching result for <b>$search</b>.</br></br>1. 
Try more general words. for example: If you want to search 'how to create a website' 
then use general keyword like 'create' 'website'</br>2. Try different words with similar 
meaning</br>3. Please check your spelling"; 
}else 
{ 
echo "$foundnum results found !<p>"; 

while($runrows = mysql_fetch_assoc($run)) 
{ 
$title = $runrows ['title']; 
$desc = $runrows ['description']; 
$url = $runrows ['url']; 

echo " 
<a href='$url'><b>$title</b></a><br> 
$desc<br> 
<a href='$url'>$url</a><p> 
"; 

} 
} 

} 
} 

?> 
+1

инициализации переменных перед использованием ... Пример $ х = 0; – user1844933

+1

** Предупреждение: ** ваш код широко открыт для SQL-инъекций! – BenM

+1

сначала определите $ x и $ construct – wild

ответ

1
$x = 0; 
$construct = ''; 

определяют его перед цикл

+0

вы получили его! Спасибо :) – user3295224

1

объявлять переменные перед их использованием для

объявить его перед цикл, как

$x=0; $construct="";

Смежные вопросы