У кого была такая же ошибка как и у меня, а именно: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in и т.д. У меня была ошибка в том, что между OR и "(Двойными кавычками) не было пробела, на видео он есть, но я не стал заострять на этом внимание. Потом уже как всё перепроверил, понял в чем заключалась ошибка.
@architector7199
4 жыл бұрын
Спасибо за комментарий. Вижу много вопросов возникает по этому скрипту и люди невнимательно смотрят. Часто ошибка кроется в синтаксисе. Попробую выложить сей код в mysqli и PDO в обоих вариантах
@1ux443
3 жыл бұрын
@@architector7199 ПОжете готовы код скинуть?
@MaximKacc
Жыл бұрын
Спасибо тебе, добрый человек. Сколько видео пересмотрел, не понятно было - всё разъяснил
@JASON-tf8be
2 жыл бұрын
Чувак ты крут все работает, объясняешь все доходчиво спасибо тебе!
@user-bt2xu2vz5d
5 жыл бұрын
Спасибо очень помог лайк тебе
@dmitriisvetenco2160
5 жыл бұрын
спасибо, очень помог
@useruser4200
5 жыл бұрын
Большое спасибо зв урок, было очен интересно !
@ArtOfFun
5 жыл бұрын
*Неужели так сложно выложить код...*
@user-er5bg6bj9o
3 жыл бұрын
$connect = mysqli_connect('localhost','mysql','mysql','application') or die("Error"); if(!empty($_POST['search'])) { if(isset($_POST['submit'])) { $search=$_POST['search']; $exp=explode(" ", $search); $search=" LIKE '%"; $search .= implode("%' or CONCAT(text, title) LIKE '%", $exp); $search .= "%' "; $sql="SELECT * FROM `search` WHERE CONCAT(text, title) " .$search; $result=mysqli_query($connect,$sql); while($row=mysqli_fetch_assoc($result)) { echo "" . $row['title'] . "" . $row['text'] . ""; } } }
мы каждой выведенной ссылке(которая является заголовком статьи - поле title) прикрепляем её же id, чтобы передать его значение методом GET на следующую страницу, чтобы по нему произвести выборку из БД - вывести ту запись, у которой id равен полученному значению ("SELECT * FROM таблица WHERE id=$_GET['id']" ) и выводим эту статью отдельно целиком.
@fribisdi2123
2 жыл бұрын
Спасибо! Очень полезно для меня чайника. Подскажите, что нужно добавить в этот код - 1) Что бы при пустом запросе в поле поиска выдало бы сообщение "Пожалуйста, введите поисковый запрос". 2) При поиске не оказалось совпадений с запросом и тогда должно выдать сообщение: "Поиск не дал результатов". Спасибо!
@ja-rusyn
4 жыл бұрын
Спасибо...
@Maratreason
2 жыл бұрын
Как вы меня выручили вы бы знали :) Лайк, подписка однозначно)
@user-tp8wi7wm7f
3 жыл бұрын
Спасибо! Отличное видео, но как сделать, чтобы в результат поиска попадали только строки, где встречаются все слова из запроса в произвольном порядке?
@user-bk8nw7xk6y
3 жыл бұрын
Пишет Notice: Undefined index: search in C:\xampp\htdocs\siite\search11.php on line 21, как исправить?
@1ux443
4 жыл бұрын
19:06 У меня выдал ошибку что делать?
@JASON-tf8be
2 жыл бұрын
А как добавить в код если ничего не найдено вывести ничего не найдено?
@globalcode410
2 жыл бұрын
KODE
@a.v.bazhanov
4 жыл бұрын
Архитектору ставим лайки
@jarsla7909
5 жыл бұрын
Здр, Я наверное уже все перепробовал, но не меняется кодировка, в место русских букв, знаки вопроса. Что может быть не так, делал все по вашему видео? И еще при написание больше одного слова в поиске идет ошибка "Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in…" Я смотрел таблицу правильно записал, делал по идее все по видео. if(isset($_POST['submit'])){ $search = explode(" ", $_POST['search']); $count = count($search); $array = array(); $i = 0; foreach($search as $key) { $i++; if($i < $count) { $array[] = "CONCAT (`title`, `text`) LIKE '%".$key."%' OR"; } else { $array[] = "CONCAT (`title`, `text`) LIKE '%".$key."%'"; } } $sql = "SELECT * FROM `test` WHERE ".implode("", $array); $query = mysqli_query($connect, $sql); while($row = mysqli_fetch_assoc($query)) echo "".$row['title']."".$row['text'].""; }
@architector7199
5 жыл бұрын
Благодарю за вопрос. Проблема решается очень просто. Вот варианты: 1) проверить чтобы сам файл был создан в кодировке utf8 2) добавить между тегами head метатег 3) установить кодировку самого соединения с БД mysqli_set_charset($link, "utf8") Подробнее www.php.net/manual/ru/mysqli.set-charset.php 4) создать в корне сайта файл .htaccess В нём прописать AddDefaultCharset UTF-8
@architector7199
5 жыл бұрын
Что касается ошибки, она в sql. Надо поставить пробел после оператора OR
@jarsla7909
5 жыл бұрын
@@architector7199 Спасибо, все заработало)))
@SMALLDan
5 жыл бұрын
cпасибо, а как сделать что бы после поиска открывало страницу?
@architector7199
5 жыл бұрын
Если как я понял, вывелись записи из бд в виде статей с заголовками или ещё что-то, эти заголовки сделать как ссылки, а в адресе ссылок прописать файл для отдельного просмотра одной записи (например, view_page.php?id=номер записи). Т.е. через метод GET мы передаём на другую страницу информацию о номере той или иной записи, а там уже через выборку подставляем полученную информацию
@SMALLDan
5 жыл бұрын
@@architector7199нет возможности что бы ты мог это записать и показать? я бы помог с распространением твоего видео и был бы тебе очень благодарен
@SMALLDan
5 жыл бұрын
@@architector7199 или может быть у тебя есть телеграмм?
@architector7199
5 жыл бұрын
@@SMALLDan есть телеграм канал, но я давно не заходил на телегу
@SMALLDan
5 жыл бұрын
@@architector7199 а как бы нам с тобой с контактировать?
@Alesha56
2 жыл бұрын
спасибо, у меня всё работает, получилось, но нужно выводить фотографию ещё, а она выводится просто названием(по типу 55dfdf.jpg) не подскажешь, как сделать, чтоб она выводилась именно фотографией, а не таким текстом?
@tory_f24
5 жыл бұрын
как можно исправить такой момент: при пустом запросе выводит весь список товаров из бд
@architector7199
5 жыл бұрын
просто поставить условие, что если поле пустое - не выполнять скрипт
@architector7199
5 жыл бұрын
!empty
@vika_28423
4 жыл бұрын
@@architector7199 а как поставить условие,что поле пустое?
@architector7199
4 жыл бұрын
@@vika_28423 надо гуглить и смотреть не сайте php.net Я думаю проверить на пустоту if(!empty(переменная)) или if(strlen(переменная) != 0)
@vika_28423
4 жыл бұрын
Architector спасибо!
@NinjaBlade0822
3 жыл бұрын
у меня он ищет только если полностью вписать название
@user-lz7li3me4q
Жыл бұрын
Привет, брат
@Franklin919
2 жыл бұрын
Сделай продолжение как обезопасить, пжпж
@vika_28423
4 жыл бұрын
А что написать в переменной $row, чтобы можно было вместе с текстом вывести картинку?
@architector7199
4 жыл бұрын
echo $row['имя_поля_картинки'];
@vika_28423
4 жыл бұрын
Architector а вместо ‘text’ что написать?Какой тип нужен для картинки,чтобы он открылся?Пробовала varchar не получилось
@architector7199
4 жыл бұрын
@@vika_28423 у вас путь к картинке на сервер хранится в таблице БД в каком-то поле (тип поля при создании лучше указывать text)? Правильно понимаю? Мы выводим её в цикле или одиночно, неважно, это поле имеет название. Вот это название нужно поставить в ковычки как здесь echo $row['имя_поля_картинки'];
@vika_28423
4 жыл бұрын
Architector у меня тип поля указан varchar(255),думаете лучше указать text?Разве тогда картинка отобразится?
@architector7199
4 жыл бұрын
@@vika_28423 всё зависит от того сколько символов складывается из названия файла и пути к нему, если не вмещается в 255, следует использовать текст
@ext7661
5 жыл бұрын
Ютуб творит чудеса, канал: Architector 3,63 млн подписчиков.
@user-xk8xj2in8r
5 жыл бұрын
привет у меня ест проблема
@architector7199
5 жыл бұрын
Какая?
@user-xk8xj2in8r
5 жыл бұрын
@@architector7199 вот код include 'conn1.php'; if (isset($_POST['poisk'])){ $key = explode(" ",$_POST['date']); $count = count($key); $array = array(); $i = 0; foreach($key as $q){ $i++; if($i < $count)$array[]="CONCAT (`data`,`name`) LIKE '%".$key."%' OR ";else $array[] = "CONCAT (`data`,`name`) LIKE '%".$key."%'"; } $sql = "SELECT * FROM `place` WHERE ".implode("", $array); echo $sql; $sq = mysqli_query($conn,$sql); While($r = mysqli_fetch_assoc($sq)) echo ' '.$r['name'].' '.$r['data'].' '.$r['didan'].' '.$r['date'].' Муфассалтар ' ; }; ?> ест ошибка ?
@tory_f24
5 жыл бұрын
спасибо за видео! у меня возникает ошибка Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in Z:\home\localhost\www\bd\index.php on line 27 вот строка: while($row = mysqli_fetch_assoc($query)) echo " ".$row ['name']."".$row['text'].""; я ведь правильно понимаю, что различие этой строки с вашей лишь в том, что ваше title меняется на мое name, так как у меня такое название в бд?
@tory_f24
5 жыл бұрын
Извините, я протупила, еще раз спасибо за видео, только говорите побольше, я в некоторых местах совсем не понимала что вы делаете, думала, что звук выключился
@aselmamet6777
5 жыл бұрын
можете поделиться как вы решили проблему?
@dark_node6173
4 жыл бұрын
@@tory_f24 Какое решение этой проблемы?
@user-ys7xd6cj8y
4 жыл бұрын
как вы исправили эту ошибку?
@MarkIzraylev
4 жыл бұрын
Ура, у меня наконец-то получилось, когда я заменил некоторые одинарные кавычки на скошенные кавычки, они находятся в тех же местах кода, как и в видео. Чтобы написать скошенную одинарную кавычку нужно на английской раскладке клавиатуры нажать там, где буква Ё (слева сверху)
Пікірлер: 68