<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Ошибки на уроках Михаила при "создании поиска по сайту".
21.11.2013 23:32:11 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #1
Ильюха

Ильюха

Новичок

Новичок

Дата регистрации:
21.11.2013 22:53:48

Сообщений: 18

Здравствуйте!
Создал сайт-копию при просмотре бесплатного курса по РНР. Следующий урок: "Создание поиска по сайту".
http://blog.myrusakov.ru/site-search.html

Идентично слизал один в один. Пять раз проверял. Таблицу в БД проверял. Кодировки проверял. Гуглил - не помогло..

----------------
Вылезают ошибки:

Warning: explode() [function.explode]: Empty delimiter in S:\home\mysite.local\www\Lib\functions.php on line 96

Warning: Invalid argument supplied for foreach() in S:\home\mysite.local\www\Lib\functions.php on line 98

Fatal error: Call to a member function fetch_assoc() on a non-object in S:\home\mysite.local\www\Lib\functions.php on line 36

--------------

function resultSetToArray($result_set) {
$array = array();
(36) while (($row = $result_set->fetch_assoc()) != false)
$array[] = $row;
return $array; }


function searchArticles($words) {
$query_search = "";
(96) $arraywords = explode("", $words);
print_r($arraywords);
(98) foreach ($arraywords as $key => $value) {
if (isset($arraywords[$key - 1])) $query_search .= " OR ";
$query_search .= "(`full_text` LIKE '%$value%' OR `title` LIKE '%$value%')";
}
global $mysqli;
connectDB();
(104) $result_set = $mysqli->query("SELECT * FROM `articles` WHERE $query_search";
closeDB();
return resultSetToArray($result_set);
}

-------------------

<?php
if (($_GET["button_search"]) && (!empty($_GET["words"]))) {
$words = htmlspecialchars($_GET["words"]);
$results = searchArticles($words);
if (count($results) != 0) {
for ($i = 0; $i < count($results); $i++) {
$number = $i + 1;
$link = "article.php?id=".$results[$i]["id"];
$title = $results[$i]["title"];
include "search_item.php";
}
}
else echo "Ничего не найдено";
}
else echo "Не задан поисковый запрос!";
?>


--------------
Пробовал отключать часть кода, искать ошибку..
Так вот если убрать «WHERE $query_search» в строке 104, то появятся все четыре статьи из БД (не взирая на запрос в "поиске" и пропадёт ошибка в 36 строке. Но ошибки в 96 и 98 остаются.

Помогите пожалуйста.
С уважением, Илья
Профиль Ответить
22.11.2013 11:18:25 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #2
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Здравствуйте Илья. На Ваш вопрос я ответил в службе поддержки. Убедительная просьба, не создавать копии Ваших тем, на форуме, если параллельно был дан запрос в службу поддержки. Спасибо за понимание.

Копия ответа на Ваш запрос:

Здравствуйте, Илья.

1.Warning: explode() [function.explode]: Empty delimiter



Данная ошибка возникает в связи с тем, что, одна из переменных в этой функции принимает пустое значение. Проверьте все переменные на эту ошибку. Выведите каждую переменную и увидите не вооруженным глазом решение Вашей проблемы.



2. Warning: Invalid argument supplied for foreach()

Ошибка гласит, что какая-то из переменных не содержит массив, а foreach() ожидает именно его. Опять же разберитесь. Скорее всего после решения первой ошибки, эта ошибка тоже отпадет.



3.Fatal error: Call to a member function fetch_assoc() on a non-object

Это значит $result_set пустой и не является объектом.Эта ошибка возникает когда в запросе ошибка

Так же:

closeDB();

return resultSetToArray($result_set);

}



Не совсем понятно. Извлекаем огурцы из закрытой банки? Проверьте.



Так же, допишите после запроса



echo $_DB->error . '<br />'; И посмотрите, что он хочет.



Проверьте синтаксис внимательнее. Где-то ошибка. В БД проверьте типы полей в таблице, может там ошибка, не тот тип.

Попробуйте заменить Ваш while:

while (($row = $result_set->fetch_assoc()) != false)
$array[] = $row;

На этот:
while ($row = $result_set->fetch_assoc())
$array[] = $row;


С Уважением, Александр Пархоменко.
Служба поддержки Михаила Русакова.
Профиль Ответить
22.11.2013 12:52:10 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #3
Ильюха

Ильюха

Новичок

Новичок

Дата регистрации:
21.11.2013 22:53:48

Сообщений: 18

Здравствуйте, Александр!
Спасибо за Ваш ответ - буду разбираться.

О наболевшем..
1. На e-mail я получил только одно предупреждение: ответ на форуме. Как получить ответ в службе поддержки - не-зна-ю.

2. Про "огурцы в закрытой банке" смотрите в уроке Михаила: http://blog.myrusakov.ru/site-search.html
Всё списывал один в один.

3. Замена while не дало положительного результата. Тем более, что на функцию resultSetToArray подвязано три других - и все работают.
В том числе подвязанные на ту же самую таблицу из базы данных.

4.
closeDB();
return resultSetToArray($result_set);
echo $_DB->error . '<br />';
Не показывает ничего.

5. Проверяю код на кириллицу, переписал отдельные куски. Не помогает.
Профиль Ответить
22.11.2013 13:14:32 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #4
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Напишите пожалуйста, в службу поддержки.
Профиль Ответить
22.11.2013 13:31:02 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #5
Ильюха

Ильюха

Новичок

Новичок

Дата регистрации:
21.11.2013 22:53:48

Сообщений: 18

Опять? Вчера написал же вопрос. :-)

Пробую войти с мейлом или логином от форума - пишет:
Неверный e-mail и/или пароль!
Профиль Ответить
22.11.2013 16:12:47 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #6
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Проверьте поля в БД, ихний тип.
И попробуйте так:
$arraywords = explode(' ', $words);
Профиль Ответить
22.11.2013 17:37:25 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #7
Ильюха

Ильюха

Новичок

Новичок

Дата регистрации:
21.11.2013 22:53:48

Сообщений: 18

И попробуйте так:
$arraywords = explode(' ', $words);

Да! Бинго. :-)

Но у Михаила в уроке имеенно ", не '.

C чем связано? Настройки Notepad++?


Спасибо, tikkiwiki!
Профиль Ответить
22.11.2013 22:23:06 Ошибки на уроках Михаила при "создании поиска по сайту". Сообщение #8
tikkiwiki

tikkiwiki

Модератор

Модератор

Дата регистрации:
15.11.2013 15:36:59

Сообщений: 194

Обращайтесь, если у Вас возникнут какие-то вопросы.
Профиль Ответить