|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2014, 17:54 | #1 |
Форумчанин
Регистрация: 11.02.2013
Сообщений: 155
|
Ошибка при поиске php + mySQL
Вложил сам скрипт реализации, поиска. Основной код php скрипта,
лежит в файле search.php. Прописал данные доступа к базе данных, и т.д. Прописал таблицу и поле таблицы, откуда будет считываться информация. Но каждый раз выдает ошибку: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in конечно ее можно уничтожить через error_reporting(0), но ничего не выводится. Помогите разобраться. Пишу скрипт для сайта с фильмами или если есть идеи как лучше реализовать поиск фильмов на сайте, то поделитесь. Спасибо |
07.03.2014, 18:17 | #2 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Нужно вывести текст ошибки, и затем исправить её. Поиск ошибок –> Быстрые рекомендации –> п.2. Составление SQL-запросов Полученный текст ошибки в SQL-запросе можно показать здесь – и мы поможем её исправить, если с этим будут проблемы. |
|
07.03.2014, 18:48 | #3 |
Форумчанин
Регистрация: 11.02.2013
Сообщений: 155
|
Уррра, спасибо тебе. Ты помог, получилось все.
Заменил $query =mysql_query("SELECT * FROM users WHERE lastname LIKE '".mysql_real_escape_string($_GE T['lastname'])."%'"); /*$query = mysql_query("SELECT * FROM users WHERE MATCH(lastname) AGAINST('$search')",$db);*/ и заработало. Правда, перед выведенной информацией выдает ошибку такую: Notice: Undefined index: lastname in и дальше выводит результаты запроса... применить параметр error_reporting(0); или нужно ее убрать по другому. Чтобы потом, не было проблем с этим? Последний раз редактировалось Vzlom; 07.03.2014 в 18:59. |
07.03.2014, 19:07 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Ошибки всегда нужно исправлять – а не прятать.
В данном случае – в код нужно добавить проверку на существование переменной $_GET['lastname'], и только потом использовать эту переменную в запросе. |
07.03.2014, 19:21 | #5 |
Форумчанин
Регистрация: 11.02.2013
Сообщений: 155
|
Спасибо. Но тут вот еще такая беда, я ввожу любую букву даже цифру в поле поиска, нажимаю Enter, он мне все равно открывает все содержимое поля lastname, он не делает выборку из критерия запроса, а просто тупо выводит всю инфу из Lastname.
Как это поправить? <?php //error_reporting(0); header("Content-type: text/html; charset=windows-1251"); $search = $_POST['search']; $search = addslashes($search); $search = htmlspecialchars($search); $search = stripslashes($search); if($search == ''){ exit("Начните вводить запрос"); } $db = mysql_connect("localhost","root","" ); mysql_select_db("users",$db); mysql_query("SET NAMES cp1251"); $query =mysql_query("SELECT * FROM users WHERE lastname LIKE '".mysql_real_escape_string($_GE T['lastname'])."%'"); /*$query = mysql_query("SELECT * FROM users WHERE MATCH(lastname) AGAINST('$search')",$db);*/ if(mysql_num_rows($query) > 0){ $sql = mysql_fetch_array($query); do{ echo "<div>".$sql['lastname']."</div>"; }while($sql = mysql_fetch_array($query)); }else{ echo "Нет результатов"; } ?> |
07.03.2014, 19:41 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Мне вообще малопонятны все эти пассажи с переменными $_POST['search'] и $_GET['lastname'].
Какая из них реально приходит из формы? $_POST['search'] или $_GET['lastname']? Выводи полностью собранный запрос на экран (echo $query;) – и смотри, подставляется ли в запрос то, что тебе нужно. Для оформления кода есть кнопка «PHP» в редакторе сообщений. Читать этот код без форматирования, отступов и подсветки нереально. |
08.03.2014, 15:08 | #7 |
Форумчанин
Регистрация: 11.02.2013
Сообщений: 155
|
<form action="search.php" method="post" name="form" onsubmit="return false;">
<p> Живой поиск:<br> <input name="search" type="text" id="search"> <small>Вводите на английском языке</small> </p> </form> Метод Post |
08.03.2014, 15:20 | #8 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,178
|
И где тут lastname
|
08.03.2014, 20:12 | #9 |
Форумчанин
Регистрация: 18.08.2010
Сообщений: 140
|
Всё растёт из того, что качество кода низкое. Уже давным-давно созданы фреймворки, позволяющие всю обработку форм отдать им "в субподряд", а самому заниматься непосредственно бизнес-логикой.
Вы как будто изучаете php. Если это так, то ещё простительно
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
|
10.03.2014, 17:14 | #10 |
Форумчанин
Регистрация: 11.02.2013
Сообщений: 155
|
да, я новичок. Кстати, за неделю, уже весть учебник перерешил с php.
И вот такая проблема меня настигла, делаю поиск по этому примеру http://code-live.ru/post/custom-sear...php-and-mysql/ и в итоге $text .= '<video width="400" height="267"><source src="'.$row1['a'].'/'.$row['b'].'/'.$row['c'].'" type="video/mp4"></video> <p>'.$row['nazvanie'].'</p>'; добавляю php поиск фильмов на сайт, после нахождения файла, я прописываю путь к файлу и ссылку на видео, которое должно проигрываться. $row1['a'].'/'.$row['b'].'/'.$row['c'] - a,b - это поля в mysql, в которых прописаны имена папок, с - тоже поле, но в ней содержится имя файла. Например: Video/video/video.mp4 Он по запросу, все находит как надо и выделяет текст запроса жирным, и видео плеер появляется, но ролик не проигрывается, путь указан. В чем проблема может быть??? Последний раз редактировалось Vzlom; 10.03.2014 в 19:43. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PHP. Ошибка запроса к MySQL. | Кронос | PHP | 2 | 25.10.2012 09:46 |
Ошибка при поиске по dataGridView | Ёжик в тумане | C# (си шарп) | 1 | 04.06.2012 14:21 |
При поиске возникает ошибка List index out of bounds (-1) | Алекссс | БД в Delphi | 10 | 22.07.2011 16:40 |
ошибка при поиске текста в файле с настройками | _Mickey_ | Помощь студентам | 0 | 29.12.2009 22:11 |
PHP and MySQL ошибка | NecRoMat | PHP | 13 | 19.01.2009 18:06 |