나는 사용자 정의 데이터베이스를 만드는 방법에 대해 YouTube video을 보았습니다. 나는 이것을 내 사이트에 구현하려고 시도했다. 그러나 분명히 작동하지 않습니다 ...MySQL 쿼리가 데이터를 가져 오지 못했습니다 ... 또는 그와 비슷한 것
다음 코드에서 'Query failed :'오류가 발생합니다.
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect to database");
mysql_select_db("$db_name")or die("cannot select DB");
$con=mysqli_connect("$host","$username","$password","$db_name");
$terms = explode(" ", $search);
$query = "SELECT * FROM search WHERE ";
foreach ($terms as $each){
$i++;
if ($i == 1)
$query .= "keywords LIKE '%each%' ";
else
$query .= "OR keywords LIKE '%each%' ";
}
$query = mysql_query($query);
$numrows = mysql_num_rows($query) or die('Query failed: ' . mysql_error() . "<br />\n$sql");
if ($numrows > 0)
while($row = mysqlfetch_ASSOC($query)){
$id = $row['id'];
$title = $row['title'];
$description= $row['description'];
$keywords = $row['keywords'];
$link = $row['link'];
echo '<h2><a href="$link">$title</a><h2>
$description<br/><br/>';
}
else
echo "No results found";
//disconnect
mysql_close();
?>
솔직히 말해서, 나는 그 중 70 % 만 이해하고 잘 모른다. 데이터베이스가 제대로 연결되어 있고 작동합니다. 내가 도대체 뭘 잘못하고있는 겁니까???
mysql_num_rows는 WHERE '와 닫는 인용 부호 사이에 공백을 넣으면서 문제를 일으키기 때문에 여기에 나를 남겨 두었습니다.
$query .= "keywords LIKE '%{$each}%' ";
그것은으로 텍스트로 각 치료되지 않고 :
$query .= "keywords LIKE '%each%' ";
대신이 일이 안
어떻게 될까요? 당신이 어디로 이동하면 '키워드 같은'의 infront .... .... 않습니다 요 ur 쿼리가 모든 것을 반환합니까? – KyleK
'$ query = mysql_query ($ query) 또는 die ('Query failed :'. mysql_error(). "
\ n $ sql"쿼리에'또는 죽이기 (... mysql_error()); 여기서 필요한 오류 메시지를 얻을 수 있습니다. '$ search'는 어디에서 선언하고 있습니까? – Sean
그래서 $ search를 $ my search로 바꿨습니다. $ mysearch는 전역 파일에서 선언되며 검색 상자에서 입력을받습니다. 나는 어딘가에 데이터베이스에 키워드를 입력 할 때 '$ title'과 '$ description'을 일반 텍스트가 아닌 변수 카운터 파트로 제공합니다. –