подскажите в чем ошибка

V2
На сайте с 21.11.2018
Offline
1
578

Всем привет.Ребят подскажите пожалуйста,что здесь не так

выдает Parse error: syntax error, unexpected end of file in on line 49


<?php
function search($words) {
$words = htmlspecialchars($words);
if ($words === "") return false;
$query_search = "";

$arraywords = explode(" ", $words);
foreach($arraywords as $key => $value) {
if (isset($arraywords[$key - 1]))
$query_search .= ' OR ';
$query_search .= '`id` LIKE "%'.$value.'%" OR `name` LIKE "%'.$value.'%"';
}

$query = "SELECT * FROM students WHERE $query_search";
$mysqli = new mysqli("localhost", "root", "", "my_base");
$result_set = $mysqli->query($query);
$mysqli->close();

$i = 0;
while($row = $result_set->fetch_assonc()) {
$results[$i] = $row;
$i++;
}
$result_set->close();
return $results;
}
if (isset($_POST['bsearch'])) {
$words = $_POST['words'];
$results = search($words);
}
?>
<html>
<body>
<form name="search" action="index.php" method="post">
<input type="text" name="words" />
<input type="submit" name="bsearch" value="Поиск" />
</form>
<?php
if (isset($_POST['bsearch'])) {
echo "<h1>Результаты Поиска</h1>";
if ($results === false) echo "вы задали пустой запрос";
if (count($results) == 0) echo "ничего не найдено";
else
for ($i = 0; $i < count($results); $i++)
echo $results[$i]["name"]."<br />";
?>
</body>
</html>
J
На сайте с 20.02.2014
Offline
97
jkm
#1

В районе строки 38


<?php
if (isset($_POST['bsearch'])) {

Открывающая фигурная скобка есть, а вот закрывающая скобка где-то потерялась.

V2
На сайте с 21.11.2018
Offline
1
#2

спасибо помог :)

T7
На сайте с 19.09.2018
Offline
43
#3

Рarse error победили. следующие ошибки:)


$words = htmlspecialchars($words);

зачем? тем более потом


$arraywords = explode(" ", $words);
foreach($arraywords as $key => $value) {
.....
$query_search .= '`id` LIKE "%'.$value.'%" OR `name` LIKE "%'.$value.'%"';
.....
}

Может просто вырезать все, что не похоже на буквы и цифры, потом перебрать и, может быть, стеммером обработать, а может нет:) Чтобы получить в итоге:

SELECT * FROM students WHERE `id` LIKE "%пет%" OR `name` LIKE "%пет%";

вместо

SELECT * FROM students WHERE `id` LIKE "%&quote;петя&quote;%" OR `name` LIKE "%&quote;петя&quote;%";

для запроса петя в кавычках

$words = '"петя"';
V2
На сайте с 21.11.2018
Offline
1
#4
jkm:
В районе строки 38

<?php
if (isset($_POST['bsearch'])) {

Открывающая фигурная скобка есть, а вот закрывающая скобка где-то потерялась.

не подскажешь еще кое что?) при поиске у меня вылазит ??? ровно столько сколько букв в найденном слове, то есть запрос по сути находит но не распознает

пробовал кодировку прописать не помогло

Gerga
На сайте с 02.08.2015
Offline
94
#5
vlad2019:
пробовал кодировку прописать не помогло

Дело в кодировке. Пробуйте еще.

V2
На сайте с 21.11.2018
Offline
1
#6

:) спасибо всем за помощь

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий