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
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
Помогите сформировать поиск по бд.
В PHP определяется ник пользователя и заносится в переменную: $autor_posts.
Есть некая БД, в ней есть таблица bs_usermeta, с столбцами: umeta_id, user_id, meta_key, meta_value.
1. В столбце meta_value ищем ник $autor_posts
2. когда находим ник, определяем в этой строке ID из столбца user_id
3. далее ищем по всем строкам совпадение по трем столбцам: user_id, meta_key, meta_value
user_id - должно быть искомое в п.2 ID
meta_key - строка mjob_delivery_order
meta_value - там искомое число - все ради этого числа
заносим число в переменную и выводим где нужно echo...
Приложил скин таблицы.
Если кратко: есть ник, по нему определяям ID, и ищем совпадение в одной строке трех столбов: ID(определенное по нику)+meta_key(mjob_delivery_o rder) +meta_value (нужное число). Прикреплено изображение (Нажмите для увеличения)
Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020 Откуда: Украина
Помог: 0 раз(а)
Если у вас user_id - это ID пользователя, а meta_key - это его ник, то почему в таблице дублируются user_id? Причем с разными meta_key...
rasl89
Отправлено: 09 Июня, 2020 - 09:46:16
Гость
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
Albert пишет:
Если у вас user_id - это ID пользователя, а meta_key - это его ник, то почему в таблице дублируются user_id? Причем с разными meta_key...
Спасибо за ответ.
Эта таблица стандартная на WordPress.
Туда забиты все данные по пользователям по порядку. Сначала все поля для ID 1, потом ниже...
Для этого я и хочу организовать поиск.
Есть ник, по нему определяям ID, и ищем совпадение в одной строке трех столбов: ID(определенное по нику)+meta_key(mjob_delivery_o rder) +meta_value (нужное число).
отлично, очень просто и работает!
только у меня возникла следующая проблема
то, что мы сделали я вывожу в публичном профиле количество продаж, когда заходишь в профиль к какому-то пользователю; теперь когда заходишь к себе в профиль там ошибки:
Fatal error: Uncaught Error: Call to a member function get() on bool in
Error: Call to a member function get() on bool in (Добавление)
Разобрался! Не туда поставил вывод!
Все работает четко! спасибо большое!
Еще вопрос, тогда при помощи такой же схемы
я сделаю пополнение баланса...
то есть:
платеж проходит...возвращается успех- далее отрабатывает:
только вот проблема вот в чем:
значение ae_user_walle имеет такой вид:
O:16:"AE_VirtualWallet":2:{s:8:"currency";O:11:"AE_Currency":4:{s:4:"code";s:3:"usd";s:6:"signal";s:1:"$";s:9:"isDefault";b:1;s:12:"rateExchange";i:1;}s:7:"balance";d:300.15;}
как прибавить некое число из переменной к "balance";d:300.15;?
таким образом пополнится баланс
Albert
Отправлено: 09 Июня, 2020 - 22:16:01
Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020 Откуда: Украина
Помог: 0 раз(а)
Для редактирования данных о пользователе есть функция wp_update_user()
rasl89
Отправлено: 09 Июня, 2020 - 22:26:01
Гость
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
Albert пишет:
Для редактирования данных о пользователе есть функция wp_update_user()
очень крутые штуки! не знал что есть такое на WP.
только непонятно как как прибавить некое число из переменной к "balance";d:300.15;?
rasl89
Отправлено: 11 Июня, 2020 - 22:41:00
Гость
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
Albert пишет:
Для редактирования данных о пользователе есть функция wp_update_user()
$balance_user="d:300.00" - как сюда передать цифру из ячейки? ведь у всех пользователей разные балансы
LIME
Отправлено: 12 Июня, 2020 - 01:42:04
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
получается что разные (Добавление)
получается что я дофига сильно ошибобаюсь (Добавление)
я много раз работал даже на вп
смешно смотреть на вас на мелких (Добавление)
каждого люблю...мелкий сергей привет тебе (Добавление)
это форум портала ...
интересно)) ктото тут есть еще такой кто сумеет со мной...слабаки
никто не сумеет
rasl89
Отправлено: 12 Июня, 2020 - 09:44:18
Гость
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
LIME пишет:
получается что разные (Добавление)
получается что я дофига сильно ошибобаюсь (Добавление)
я много раз работал даже на вп
смешно смотреть на вас на мелких (Добавление)
каждого люблю...мелкий сергей привет тебе (Добавление)
это форум портала ...
интересно)) ктото тут есть еще такой кто сумеет со мной...слабаки
никто не сумеет
Lime, а что по моему вопросу?
Vladimir Kheifets
Отправлено: 14 Июня, 2020 - 14:02:03
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
rasl89 пишет:
Еще вопрос, тогда при помощи такой же схемы
я сделаю пополнение баланса...
значение ae_user_walle имеет такой вид:
O:16:"AE_VirtualWallet":2:{s:8:"currency";O:11:"AE_Currency":4:{s:4:"code";s:3:"usd";s:6:"signal";s:1:"$";s:9:"isDefault";b:1;s:12:"rateExchange";i:1;}s:7:"balance";d:300.15;}
как прибавить некое число из переменной к "balance";d:300.15;?
таким образом пополнится баланс
Добрый день!
Если принимать структуру данных, как неизбежную реальность,
то можно сделать так:
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
rasl89 пишет:
только непонятно как как прибавить некое число из переменной к "balance";d:300.15;?
По структуре строки не трудно догадаться, что из БД вы получаете сериализованный объект. Для работы с подобными строками есть штатная функция unserialize(). Всё, что вам надо сделать - преобразовать строку в объект:
После сериализации объекта модифицированную строку можно снова записать в БД.
Нужно обратить внимание на использование объектов класса AE_VirtualWallet и AE_Currency, они должны быть описаны (объявлены) в вашей программе. Если по каким-то причинам эти классы не были подгружены, то можно описать их перед началом десериализации:
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
Строитель пишет:
По структуре строки не трудно догадаться, что из БД вы получаете сериализованный объект. Для работы с подобными строками есть штатная функция unserialize(). Всё, что вам надо сделать - преобразовать строку в объект:
После сериализации объекта модифицированную строку можно снова записать в БД.
Нужно обратить внимание на использование объектов класса AE_VirtualWallet и AE_Currency, они должны быть описаны (объявлены) в вашей программе. Если по каким-то причинам эти классы не были подгружены, то можно описать их перед началом десериализации:
Вот это да, век - живи, век- учись!
Спасибо большое!
rasl89
Отправлено: 15 Июня, 2020 - 13:26:49
Гость
Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020 Откуда: Россия, Уфа
Помог: 1 раз(а)
Строитель пишет:
rasl89 пишет:
только непонятно как как прибавить некое число из переменной к "balance";d:300.15;?
По структуре строки не трудно догадаться, что из БД вы получаете сериализованный объект. Для работы с подобными строками есть штатная функция unserialize(). Всё, что вам надо сделать - преобразовать строку в объект:
После сериализации объекта модифицированную строку можно снова записать в БД.
Нужно обратить внимание на использование объектов класса AE_VirtualWallet и AE_Currency, они должны быть описаны (объявлены) в вашей программе. Если по каким-то причинам эти классы не были подгружены, то можно описать их перед началом десериализации:
Вопрос, как сюда передать значение переменной пополнения баланса?
единственный вопрос как сюда переменную передать:
$object->balance += 100;
$object->balance += $m_amount; ?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.