2014-10-31 1 views
0

PHP를 사용하여 검색 창을 만들었으며 MySQL 데이터베이스에있는 데이터를 검색하려고합니다.PHP 검색 바를 사용하여 MySQL 데이터베이스 데이터를 검색하는 방법

<?php 

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

if(!$button) 
echo "You searched for '<b>$search</b>' <hr size='1'</br>"; 
$con=mysqli_connect("localhost", "root", "root", "PM_DB"); 

if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$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 Leads WHERE $construct"; 
$run = mysqli_query($construct); 

$foundnum = mysqli_num_rows($run); 

if ($foundnum==0) 
echo "There are no results for <b>'$search'</b>. Please check your spelling."; 
else 
{ 
echo "$foundnum results found !<p>"; 

while($runrows = mysqli_fetch_assoc($run)) 
{ 
$Company = $runrows['Clients']; 

echo "<a href='$Company'><b>Company</b></a><br>"; 

} 
} 

?> 

때마다 나는 그것은 단지 오류 메시지를 반환 검색 클릭하여 다음과 같이

내 코드입니다. 나는 무엇을 놓치고 있습니까? 모든 제안을 높이 평가 될 것입니다! 고마워요 - Tijger.

+0

오류 메시지 –

+0

을 제공하거나 결과를 찾을 수 없다는 것을 인쇄합니까 ?? 또한,'$ x'는 루프 이전의 어느 위치에서 초기화되지 않았습니다. –

+0

결과를 찾지 못했음을 출력하고, $ x가 루프 외부에서 초기화되지 않아 아무것도 반환하지 않기 때문일 수 있습니까? – Tijger

답변

0

나는 그가 권리를 실행했다

그를 위해 오류의 원인이 된 두 줄을 주석 OP

에서 코드를 요청으로이 코드

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

$construct = "SELECT * FROM Leads WHERE keywords LIKE "; 
$construct .= "'%".implode("%' OR '%", $search_exploded)."%'"; 

$run = mysqli_query($construct); 

Live demo

+0

그 중 "SELECT * FROM Leads WHERE keywords LIKE % company % 만 반환됩니다 'company'에 대한 결과가 없습니다. 철자를 확인하십시오." – Tijger

+0

업데이트 된 답변보기 ... 단일 인용 부호를 잊어 버렸습니다. ... 그냥 위 코드를 사용하십시오 – Umair

+0

"아직 '회사'에 대한 검색 결과가 없습니다. 맞춤법을 확인하십시오." – Tijger

0

시도 쿼리 및 다음 잘못된 쿼리를 다시 ... 결과가 반환되는 이유입니다.

<?php 
     $button = $_GET ['submit']; 
     $search = $_GET ['search']; 

     if (!$button) 
      echo "You searched for '<b>$Search</b>' <hr size='1'</br>"; 
     $con = mysqli_connect("localhost", "root", "root", "PM_DB"); 

     if (mysqli_connect_errno()) { 
      echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

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

     $construct = "SELECT * FROM Leads WHERE keywords LIKE "; 
     $construct .= "'%" . implode("%' OR '%", $search_exploded) . "%'"; 

     $run = mysqli_query($construct) or die(mysql_error()); 

     // Why thisssssssssssssssssss??????????? OMG 
     //$construct = "SELECT * FROM Leads WHERE $construct"; 
     //$run = mysqli_query($construct); 

     $foundnum = mysqli_num_rows($run) or die(mysql_error()); 

     if ($foundnum == 0) 
      echo "There are no results for <b>'$search'</b>. Please check your spelling."; 
     else { 
      echo "$foundnum results found !<p>"; 

      while ($runrows = mysqli_fetch_assoc($run)) { 
       $Company = $runrows['Clients']; 

       echo "<a href='$Company'><b>Company</b></a><br>"; 
      } 
     } 
     ?> 
+0

여전히 빈 페이지를 반환합니다. – Tijger

+0

흠,하지만 어쩌면 당신은 아마 어떤 오류가 발생합니다. PHP 코드 상단에 오류 코드를 추가하고 오류가 있는지 확인하십시오. – Umair

+0

해당 행을 추가했는데 오류가보고되지 않은 빈 페이지가 여전히 반환됩니다. – Tijger

관련 문제