Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12

Оператор LIKE / PHP и базы данных

05.05.2014, 10:17. Показов 3127. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
В SQL получается выполнить следующий запрос:
SQL
1
SELECT * FROM `menu` WHERE Name LIKE '%Суп%'
Все находит, вообщем работает. Но из под php не получается выполнить.
PHP
1
$qr_resultt = mysql_query("select * from menu where Name LIKE '%".$p."%'");
$p - переменная значения, которую ввел пользователь.
Пробывал различные варианты записи знака "%", результата 0.
Просто поиск работает, но мне нужен именно LIKE.

PHP
1
2
<input type="text" name="nam" placeholder="Наименование">
$p=$_POST['nam'];
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2014, 10:17
Ответы с готовыми решениями:

Php + mysql = отобразить перечень таблиц базы данных, схему данных
Всем привет, нужна ваша помощь, как реализовать данные задания? 1. Создать главную страницу сайта, на котором отобразить перечень таблиц...

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

Базы данных в PHP
Какая переменная или какой файл в папках сервера(допустим денвера) является базой данных(т.е. именно тот файл в котором хранятся данные о...

20
 Аватар для Garred
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
05.05.2014, 12:07
Попробуйте так:
PHP
1
$qr_resultt = mysql_query("select * from `menu` where `Name` LIKE '%$p%'");
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 12:16  [ТС]
Так тоже пробовал - не работает.
0
 Аватар для Garred
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
05.05.2014, 12:31
asper_, может у Вас там тип данных не символьный?
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
05.05.2014, 12:32
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if(isset($_POST["send"])) {
    $search = htmlspecialchars($_POST["search"]);
    if(!empty($search)) {
        $query = mysql_query("SELECT * FROM `menu` WHERE `name` LIKE '%".$search."%'");
        while($result = mysql_fetch_array($query)) {
            echo '<p>'.$result["name"].'</p>';
        }
    }else
        echo 'Заполните поле!';
}
?>
 
<form action="" method="post">
    <input type="text" name="search" /><br />
    <input type="submit" name="send" value="Поиск" />
</form>
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 15:55  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php  
 
$db_host = 'localhost';
$db_name = 'bd';
$db_username = '*****';
$db_password = '*****';
$db_table_to_show = 'menu';
$p=$_POST['nam']; 
$c=$_POST['cina1']; 
$cc=$_POST['cina2']; 
mysql_query("SET NAMES utf8");
$connect_to_db = mysql_connect($db_host, $db_username, $db_password)
or die("Could not connect: " . mysql_error());
 
$qr_resultt1 = mysql_query("select `Name`,`Ves`,`Cina` from menu where Name ='$p'");
$prov=mysql_fetch_array($qr_resultt1);
 
$qr_resultt11 = mysql_query("select * from menu where Cina BETWEEN '$c' AND '$cc'");
$prov1=mysql_fetch_array($qr_resultt11);
 
 // выводим на страницу сайта заголовки HTML-таблицы
 
//var_dump($aaa);
 
 
if($prov!=false){
$qr_resultt = mysql_query("select * from `menu` where `name` LIKE '%".$p."%'")or die(mysql_error());
echo'<div class="menuu">';      
echo'<table cellspacing="0">';
echo '<thead>';
echo '<tr>';
echo '<th>Наименование:</th>';
echo '<th>Вес,гр.</th>';
echo '<th>Цена,грн.</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
 
// выводим в HTML-таблицу все данные из таблицы MySQL 
while($dataa = mysql_fetch_array($qr_resultt)){ 
echo '<tr>';
echo '<td><p>'.$dataa['Name'].'</p></td>';
echo '<td>'.$dataa['Ves'].'</td>';
echo '<td>'.$dataa['Cina'].'</td>';
echo '</tr>'; 
echo '</tbody>';}
 
echo '</table>';    
echo '<br>';
echo '</div>';  }
 
if($prov1!=false){
 
$qr_resultt11 = mysql_query("select * from menu where Cina BETWEEN '$c' AND '$cc'");
if($prov!=true){
echo'<div class="menuu">';      
echo'<table cellspacing="0">';
echo '<thead>';
echo '<tr>';
echo '<th>Наименование:</th>';
echo '<th>Вес,гр.</th>';
echo '<th>Цена,грн.</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
 
// выводим в HTML-таблицу все данные из таблицы MySQL 
while($dataa = mysql_fetch_array($qr_resultt11)){ 
echo '<tr>';
echo '<td><p>✓ '.$dataa['Name'].'</p></td>';
echo '<td>'.$dataa['Ves'].'</td>';
echo '<td>'.$dataa['Cina'].'</td>';
echo '</tr>'; }
echo '</tbody>';
echo '</table>';    }}
echo '<br>';
echo '</div>';  
  ?>
При такой записи, Like работает как обычный поиск, то есть если я указываю не полное имя - в ответ ничего не получаю. Если указываю полное - выводит значение.
А мне обязательно нужно использовать LIKE
0
12 / 12 / 3
Регистрация: 17.03.2014
Сообщений: 75
05.05.2014, 17:20
Цитата Сообщение от asper_ Посмотреть сообщение
LIKE '%".$p."%'
у меня такой же код, но переменная своя, работает как надо. попробуйте без or die(mysql_error()). От этого конечно нечего не должно измениться но мало ли. Главное что в запросе до or die(mysql_error()) всё должно работать.
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 17:30  [ТС]
Ничего не поменялось, ищет, но только по полному наименованию.
0
12 / 12 / 3
Регистрация: 17.03.2014
Сообщений: 75
05.05.2014, 17:40
А что это у вас в запросе name а в выводе Name.
0
 Аватар для Garred
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
05.05.2014, 17:41
asper_, попробуйте вот это сделать
PHP
1
2
$p=$_POST['nam']; 
$p=trim($p);
0
12 / 12 / 3
Регистрация: 17.03.2014
Сообщений: 75
05.05.2014, 17:44
php чувствителен к регистру символов вроде как.
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 18:30  [ТС]
Цитата Сообщение от Garred Посмотреть сообщение
2
$p=$_POST['nam'];
$p=trim($p);
Не, не помогло.
Цитата Сообщение от programmer123 Посмотреть сообщение
А что это у вас в запросе name а в выводе Name.
Без разници
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
05.05.2014, 18:41
кодировка слова
Суп
в скрипте php может сильно отличаться от кодировки слова
Суп
в базе данных... америка. юесей так сказать. что вы хотите..
0
 Аватар для Garred
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
05.05.2014, 18:43
Вводите в поиск одно слово без пробелов

А еще выведите на экран свой запрос
PHP
1
echo "select * from menu where Name LIKE '%".$p."%'";
может что понятно станет...
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 19:15  [ТС]
Цитата Сообщение от Garred Посмотреть сообщение
echo "select * from menu where Name LIKE '%".$p."%'";
Я и без пробелов пишу, если написать "Омлет"
select * from menu where Name LIKE '%Омлет%' и выводит информацию о нём.
А если же написать "Омл"
select * from menu where Name LIKE '%Омл%' - ничего не выводит.
В SQL таким запросом SELECT * FROM `menu` WHERE `name` LIKE '%Омл%' - Всё работает
0
 Аватар для Garred
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
05.05.2014, 19:20
Кодировка везде совпадает?
у таблиц, у полей...
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 19:38  [ТС]
Цитата Сообщение от Garred Посмотреть сообщение
Кодировка везде совпадает?
у таблиц, у полей...
Да, у таблици и всех полей utf8_bin
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
05.05.2014, 20:05
Цитата Сообщение от asper_ Посмотреть сообщение
Да, у таблици и всех полей utf8_bin
а у скрипта какая кодировка?
0
0 / 0 / 0
Регистрация: 28.03.2014
Сообщений: 12
05.05.2014, 20:11  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
а у скрипта какая кодировка?
UTF-8
Обычный поиск ведь работает
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
05.05.2014, 20:21
Цитата Сообщение от asper_ Посмотреть сообщение
Обычный поиск ведь работает
POST в какой кодировке передает?

Добавлено через 3 минуты
http://htmlbook.ru/html/form/accept-charset
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2014, 20:21
Помогаю со студенческими работами здесь

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

Выборка из базы данных php +mysql
Привет программисты! Хотел создать двухуровневою реф. систему , но не могу сообразить как достать рефералов 2 уровня код в gform...

Select выбора данных из базы PHP
Хочу, чтобы при выборе из списка переходила на соответствующую страницу, без использования кнопки. Но так не работает. Помогите, пожалуйста...

Статьи через php и базы данных
Всем привет. Я вот посмотрел на сайтах и увидел, что менюшки ссылаются на такие вот ссылки: ...

Передать значение из базы данных в PHP
Добрый денечек дамы и господа, пришел за помощью в решении задачи. Есть определенный плагин для вордпресс, который выводит аватарки юзеров....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru