Здравствуйте, я получил приведенный ниже код из учебника Youtube, и он работает, если я ищу строку, которая существует только в 1 столбце. Если я совмещаю поиск чего-то, что находится в двух разных столбцах, я не получаю никаких результатов. Например, если Джек находится в столбце 1 и Кролик в колонке 2, если я ищу «Джека Кролика», то я не получаю никаких результатов. Если я ищу «Джек», то он работает, тот же для «Кролика».php Msql поиск нескольких столбцов
Я знаю, что исправление находится в строке ниже, но когда я изменил строку в соответствии с другими сообщениями здесь, в stackoverflow, которые я искал, у меня появились ошибки, потому что их код был немного иным, чем мой.
$query = mysql_query("SELECT * FROM myTable WHERE columnOne LIKE '%$searchq%' OR columnTwo LIKE '%$searchq%' ") or die("Could not search!");
Весь код поиска ниже
<?php
mysql_connect("localhost", "Name_Name", "Password") or die("Could not connect");
mysql_select_db("Name_Databse") or die("Could not find db!");
$output = ' ' ;
//collect
if(isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", " ", $searchq);
$query = mysql_query("SELECT * FROM myTable WHERE columnOne LIKE '%$searchq%' OR columnTwo LIKE '%$searchq%' ") or die("Could not search!");
$count = mysql_num_rows($query);
if($count == 0) {
$output = 'There was no such results!';
}else{
while($row = mysql_fetch_array($query)){
$id = $row['id'];
$aHref = $row['aHref'];
$columnOne = $row['columnOne'];
$columnTwo = $row['columnTwo'];
$inputDiv = $row['inputDiv'];
$image = $row['image'];
$output .= '<a href="' . $aHref . '.html" class="link"> <div class="Poster">' . ' <div class="columnOne">' . $columnOne . ' </div> <div class="columnTwo">' . $columnTwo . ' </div> <div class="inputDiv">' . $inputDiv . ' </div> <div class="image"><img src="' . $image . '.jpg"/>' . '</div> </div></a>';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title> Search </title>
<link rel='stylesheet' type='text/css' href='Styler.css'/>
</head>
<body>
<form action='search.php' method='post' style="margin: 0 0 25px;">
<input type='text' name='search' size='50' placeholder="Search here"/>
<input type='submit' value='Search' />
</form>
<?php print("$output"); ?>
</script>
</body>
</html>
Какова конкретная ошибка MySQL, которую вы получаете? – Maximus2012
Ну, вот и все. Это классика: * «Левая рука не знает, что делает или держит правая рука» *. Вам нужно использовать 'explode()'. Ya не может иметь ваш пирог 'AND' и его тоже есть ;-) –
Попробуйте включить' mysql_error() ', чтобы проверить, есть ли какая-либо ошибка. Например: 'или die (« Не удалось выполнить поиск: ».mysql_error());' – bcesars