Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: запрос на исключение полей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
yura
Отправлено: 11 Марта, 2011 - 13:57:50
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Помогите пожалуйста написать запрос на выборку из таблицы `wp_usermeta` значения полей `umeta_id` и `meta_value`, с тем условием что `meta_key`=nickname

вот такая база:
http://i006[dot]radikal[dot]ru/1103/ac/1be2102acdc3[dot]jpg
 
 Top
poskrobka
Отправлено: 11 Марта, 2011 - 14:02:45
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




select umeta_id, meta_value from wp_usermeta where (meta_key=nickname)
 
 Top
yura
Отправлено: 11 Марта, 2011 - 18:54:02
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




poskrobka пишет:
select umeta_id, meta_value from wp_usermeta where (meta_key=nickname)


PHP:
скопировать код в буфер обмена
  1. mysql_query("SELECT `meta_value`, `umeta_id` from `wp_usermeta` where (`meta_value` LIKE '%{$_POST['search_edit']}%' OR `umeta_id` LIKE '%{$_POST['search_edit']}%' AND  `meta_key` LIKE  'nickname')");


как-то так но только чтобы выводились те поля у которых есть значение nickname
чтобы вывелись только те значения которые отмечены на картинке красным

(Отредактировано автором: 11 Марта, 2011 - 19:21:56)

 
 Top
HotBird
Отправлено: 12 Марта, 2011 - 10:10:42
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




Этот фрагмент
yura пишет:
`meta_key` LIKE 'nickname'

замените на
`meta_key`='nickname'


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
yura
Отправлено: 12 Марта, 2011 - 21:43:49
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




HotBird пишет:
Этот фрагмент
yura пишет:
`meta_key` LIKE 'nickname'

замените на
`meta_key`='nickname'


исправил, но все равно при вводе\поиске 1 выводится a:1:{s:13:"administrator";s:1:"1";} из wp_capabilities, 10 из wp_user_level и т.д. ...
 
 Top
HotBird
Отправлено: 12 Марта, 2011 - 23:51:05
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




Может я не совсем понимаю, но зачем вам всё это:
yura пишет:
`meta_value` LIKE '%{$_POST['search_edit']}%' OR `umeta_id` LIKE '%{$_POST['search_edit']}%'

На мой взгляд вам poskrobka нормально написал.


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
yura
Отправлено: 13 Марта, 2011 - 21:09:36
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




HotBird пишет:
Может я не совсем понимаю, но зачем вам всё это:


- есть поле, в него вводится значение, нажимается кнопка "найти".
- после чего данные попадают в $_POST['search_edit'].
- затем введенное значение ищется в таблице `wp_usermeta` в полях `umeta_id` и `meta_value`.
- но выборку нужно выводить только в том случае если поле `meta_key` имеет значение nickname.

HotBird пишет:
На мой взгляд вам poskrobka нормально написал.


выведет просто список всех пользователей и их индивидуальные номера, пропущен момент поиска по значению.

говоря простым языком:
1. пользователь ввел 3 ищем по таблице в нужных полях тройку, нашли, смотрим у `meta_key` есть поле nickname? да, значит выводим 3 и admin.
2. пользователь ввел t, ищем по таблице в нужных полях t, нашли имеет ли `meta_key` поле nickname? да, выводим 49 и anton. и не нужно выводить слова такие как true и т.д
 
 Top
HotBird
Отправлено: 13 Марта, 2011 - 23:37:29
Post Id



Гость


Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010  


Помог: 2 раз(а)




Ещё заметил одну ошибку у вас, дело в том что в MySQL оператор AND имеет высший приоритет чем OR, поэтому в вашем запросе сначала исполняется AND а потом OR, что и приводит к неправильному результату.
Попробуйте изменить условие так:
where (`meta_value` LIKE '%{$_POST['search_edit']}%' OR `umeta_id` LIKE '%{$_POST['search_edit']}%') AND `meta_key` LIKE 'nickname'


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
yura
Отправлено: 14 Марта, 2011 - 16:55:54
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




HotBird пишет:
Попробуйте изменить условие так:
where (`meta_value` LIKE '%{$_POST['search_edit']}%' OR `umeta_id` LIKE '%{$_POST['search_edit']}%') AND `meta_key` LIKE 'nickname'


бгг, заработало!!! Вы гениальный человек! спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB