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 [2]

 PHP.SU

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


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

> Без описания
Строитель
Отправлено: 15 Июня, 2020 - 15:21:04
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




rasl89 пишет:
как сюда передать значение переменной пополнения баланса?
PHP:
скопировать код в буфер обмена
  1. // Допустим в $m_amount уже хранится значение 100
  2. $m_amount = 100;
  3.  
  4. // Что бы прибавить его к уже существующему значению в $object->balance,
  5. // можно использовать оператор "+="
  6. $object->balance += $m_amount;
  7.  
  8. // Или так:
  9. $object->balance = $object->balance + $m_amount;
  10.  
  11. // Если нужно перезаписать значение в $object->balance,
  12. // используйте оператор "="
  13. $object->balance = $m_amount;
 
 Top
rasl89
Отправлено: 15 Июня, 2020 - 15:37:24
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


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




Строитель пишет:
rasl89 пишет:
как сюда передать значение переменной пополнения баланса?
PHP:
скопировать код в буфер обмена
  1. // Допустим в $m_amount уже хранится значение 100
  2. $m_amount = 100;
  3.  
  4. // Что бы прибавить его к уже существующему значению в $object->balance,
  5. // можно использовать оператор "+="
  6. $object->balance += $m_amount;
  7.  
  8. // Или так:
  9. $object->balance = $object->balance + $m_amount;
  10.  
  11. // Если нужно перезаписать значение в $object->balance,
  12. // используйте оператор "="
  13. $object->balance = $m_amount;


спасибо большое!
(Добавление)
Строитель пишет:
rasl89 пишет:
как сюда передать значение переменной пополнения баланса?
PHP:
скопировать код в буфер обмена
  1. // Допустим в $m_amount уже хранится значение 100
  2. $m_amount = 100;
  3.  
  4. // Что бы прибавить его к уже существующему значению в $object->balance,
  5. // можно использовать оператор "+="
  6. $object->balance += $m_amount;
  7.  
  8. // Или так:
  9. $object->balance = $object->balance + $m_amount;
  10.  
  11. // Если нужно перезаписать значение в $object->balance,
  12. // используйте оператор "="
  13. $object->balance = $m_amount;


А потом какой-то реверс делать нужно, чтобы записать все это в ячейку обратно?

получается я получил эту строку так по логину:
PHP:
скопировать код в буфер обмена
  1. $user = get_user_by('slug', $user_data01);
  2. $str = $user->get('ae_user_wallet');


теперь в ae_user_wallet нужно записать новое значение
 
 Top
Строитель
Отправлено: 15 Июня, 2020 - 15:44:56
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




rasl89 пишет:
спасибо большое!
Теперь вы имеете возможность выражать благодарность кликом по ссылке Спасибо Закатив глазки

rasl89 пишет:
А потом какой-то реверс делать нужно, чтобы записать все это в ячейку обратно?
Вероятно нужно сериализовать объект (см. пример из предыдущих ответов)
rasl89 пишет:
теперь в ae_user_wallet нужно записать новое значение
Я WP не пользовался, поэтому рекомендую почитать Кодекс разработчика. Если в документации найти ответ не удастся, то будет лучше запостить вопрос на форумах WP.

(Отредактировано автором: 15 Июня, 2020 - 15:50:42)

 
 Top
rasl89
Отправлено: 15 Июня, 2020 - 20:13:29
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


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




Строитель пишет:
rasl89 пишет:
спасибо большое!
Теперь вы имеете возможность выражать благодарность кликом по ссылке Спасибо Закатив глазки

rasl89 пишет:
А потом какой-то реверс делать нужно, чтобы записать все это в ячейку обратно?
Вероятно нужно сериализовать объект (см. пример из предыдущих ответов)
rasl89 пишет:
теперь в ae_user_wallet нужно записать новое значение
Я WP не пользовался, поэтому рекомендую почитать Кодекс разработчика. Если в документации найти ответ не удастся, то будет лучше запостить вопрос на форумах WP.


Что-то дебаггер ругается на дессериализацию:
PHP:
скопировать код в буфер обмена
  1. $user = get_user_by('slug', $user_data01);
  2. $str = $user->get('ae_user_wallet');
  3. $object = unserialize($str);
  4. echo $object;


хотел посмотреть что там,а там ошибка:
Warning: unserialize() expects parameter 1 to be string, object given in

что-то он на массив ругается

(Отредактировано автором: 15 Июня, 2020 - 20:13:55)

 
 Top
Строитель
Отправлено: 15 Июня, 2020 - 20:22:24
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Строитель пишет:
Warning: unserialize() expects parameter 1 to be string, object given

Раз ругается, значит так и есть. Интерпретатор - лучший помощник программиста. В вашем случае сообщение говорит: unserialize() ожидает, что первый параметр должен быть строкой, а вместо этого передаётся объект. Проверить это можно или функцией var_dump():
Спойлер (Отобразить)
или дебаггером.
 
 Top
rasl89
Отправлено: 15 Июня, 2020 - 20:32:30
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


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




Строитель пишет:
Строитель пишет:
Warning: unserialize() expects parameter 1 to be string, object given

Раз ругается, значит так и есть. Интерпретатор - лучший помощник программиста. В вашем случае сообщение говорит: unserialize() ожидает, что первый параметр должен быть строкой, а вместо этого передаётся объект. Проверить это можно или функцией var_dump():
Спойлер (Отобразить)
или дебаггером.


Цитата:
var_dump($str); die; // Своего рода точка останова программы
- да да я посмотрел, там массив все впорядке, пытаюсь его перевести в строку при помощи implode не выходит, чтобы в дальнейшем его десериализировать
 
 Top
Строитель
Отправлено: 15 Июня, 2020 - 20:38:25
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




rasl89 пишет:
там массив все в порядке, пытаюсь его перевести в строку при помощи implode не выходит
И не выйдет, потому что unserialize() "понимает" строки определённого формата. Если у вас уже есть массив, то и работайте с ним, как с массивом. А уже потом, перед записью в БД (в случае, если в БД хранится именно сериализованная строка), обрабатывайте этот массив функцией serialize() и пишите полученную сериализованную строку в базу.
 
 Top
rasl89
Отправлено: 15 Июня, 2020 - 20:56:32
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


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




Строитель пишет:
rasl89 пишет:
там массив все в порядке, пытаюсь его перевести в строку при помощи implode не выходит
И не выйдет, потому что unserialize() "понимает" строки определённого формата. Если у вас уже есть массив, то и работайте с ним, как с массивом. А уже потом, перед записью в БД (в случае, если в БД хранится именно сериализованная строка), обрабатывайте этот массив функцией serialize() и пишите полученную сериализованную строку в базу.


если работать с массивом, тогда и десериализовываать его не нужно:

PHP:
скопировать код в буфер обмена
  1. object(AE_VirtualWallet)[9523]
  2.   public 'currency' =>
  3.     object(AE_Currency)[9527]
  4.       public 'code' => string 'usd' (length=3)
  5.       public 'signal' => string '$' (length=1)
  6.       public 'isDefault' => boolean true
  7.       public 'rateExchange' => int 1
  8.   public 'balance' => float 300.15


просто выцыганить оттуда balance при помощи foreach?
(Добавление)
хотя можно и так?


$str - массив
(Добавление)
ну да, работает!
(Добавление)
ну и все, далее можно сериалайзить и писать в БД
 
 Top
Строитель
Отправлено: 15 Июня, 2020 - 21:16:06
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




rasl89 пишет:
$str - массив
это не массив, а объект класса AE_VirtualWallet, который в свою очередь хранит объект класса AE_Currency. Как с ними работать - частично написано выше. Ну а подробно - в оф.документации. Вам нужно, прежде чем тут задать вопрос, почитать об этом в документации - там есть ответы на 99 % вопросов. И время себе сэкономите Улыбка
 
 Top
rasl89
Отправлено: 15 Июня, 2020 - 21:25:16
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


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




Строитель пишет:
rasl89 пишет:
$str - массив
это не массив, а объект класса AE_VirtualWallet, который в свою очередь хранит объект класса AE_Currency. Как с ними работать - частично написано выше. Ну а подробно - в оф.документации. Вам нужно, прежде чем тут задать вопрос, почитать об этом в документации - там есть ответы на 99 % вопросов. И время себе сэкономите Улыбка


да, но всегда хочется быстрее решить проблему, запомнить на будущее и двигаться дальше))
 
 Top
Строитель
Отправлено: 15 Июня, 2020 - 21:29:41
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




rasl89 пишет:
всегда хочется быстрее решить проблему
Не факт, что действуя "на ощупь" вы сможете найти решение быстрее, чем открыть описание функционала с готовыми примерами. Скорее всего, у вас ещё не выработался навык чтения документации, но это дело времени.
 
 Top
rasl89
Отправлено: 15 Июня, 2020 - 21:42:39
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


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




Строитель пишет:
rasl89 пишет:
всегда хочется быстрее решить проблему
Не факт, что действуя "на ощупь" вы сможете найти решение быстрее, чем открыть описание функционала с готовыми примерами. Скорее всего, у вас ещё не выработался навык чтения документации, но это дело времени.


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB