Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 08.09.2019, 20:29   #11
Дмитрий82
Пользователь
 
Регистрация: 10.10.2018
Сообщений: 13
По умолчанию

Код:
$idproduct_decode=[2=>1,5=>1];
$result = $mysqli->query("SELECT `productid`,`price` FROM `product` WHERE `productid` IN ('" . implode(',', array_keys($idproduct_decode)) . "')");
print_r($result );
вот что выводит print_r($result );
mysqli_result Object ( [current_field] => 0 [field_count] => 2 [lengths] => [num_rows] => 1 [type] => 0 )
Дмитрий82 вне форума   Ответить с цитированием
Старый 08.09.2019, 20:33   #12
Дмитрий82
Пользователь
 
Регистрация: 10.10.2018
Сообщений: 13
По умолчанию

вот что выводит while ($row = mysqli_fetch_array($result,MYSQLI_N UM)){
print_r($row);
}
Array ( [0] => 2 [1] => 3500 )
Дмитрий82 вне форума   Ответить с цитированием
Старый 08.09.2019, 21:46   #13
Дмитрий82
Пользователь
 
Регистрация: 10.10.2018
Сообщений: 13
По умолчанию

убрал одинарные кавычки (" . implode(',', array_keys($idproduct_decode)) . ")")
и ура получилось [["2","3500"],["5","9900"]]
спасибо большое за помощь.

Последний раз редактировалось Дмитрий82; 08.09.2019 в 21:52.
Дмитрий82 вне форума   Ответить с цитированием
Старый 08.09.2019, 23:06   #14
Дмитрий82
Пользователь
 
Регистрация: 10.10.2018
Сообщений: 13
По умолчанию

сейчас возникает другой вопрос как записать его ка объект {"2":3500,"5":9900}
Дмитрий82 вне форума   Ответить с цитированием
Старый 08.09.2019, 23:34   #15
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,235
По умолчанию

Цитата:
Сообщение от Дмитрий82 Посмотреть сообщение
убрал одинарные кавычки ("
обратите внимание - https://www.programmersforum.ru/show...85&postcount=2
эти кривые кавычки появились после того, как Вы предложенный мной код криво преобразовали/скопировали. Зачем-то заменили одинарные на двойные, но и одинарные оставили.
К слову, а Вы знаете отличие одинарных и двойных кавычек в PHP ? Зачем Вы используете двойные там, где они не нужны?


Цитата:
Сообщение от Дмитрий82 Посмотреть сообщение
сейчас возникает другой вопрос как записать его ка объект {"2":3500,"5":9900}
я бы предложил вариант
Код:
$object = (object) $rezult;
но уверен, что это не поможет.
во-первых, в массиве две записи. но может быть и больше. их в один объект надо засунуть?
во-вторых, а какие у объекта должны быть наименования свойств? 2 и 5 ?

Или я что-то не понял?
что нужно хочешь получить в итоге? Приведите описание объекта, если его задали в коде PHP как переменную-объект.
Как обращаться с полученным объектом (пример кода)?

Последний раз редактировалось Serge_Bliznykov; 08.09.2019 в 23:36.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 09.09.2019, 00:01   #16
Дмитрий82
Пользователь
 
Регистрация: 10.10.2018
Сообщений: 13
По умолчанию

на данный момент записывается [["2","3500"],["5","9900"]],
а цель была {"2":3500,"5":9900},
на самом деле не важно итак сойдет, спасибо за помощь.

Последний раз редактировалось Дмитрий82; 09.09.2019 в 09:15.
Дмитрий82 вне форума   Ответить с цитированием
Старый 09.09.2019, 12:37   #17
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,235
По умолчанию

Цитата:
Сообщение от Дмитрий82 Посмотреть сообщение
на данный момент записывается [["2","3500"],["5","9900"]],
а цель была {"2":3500,"5":9900},
Вас понял. попробуйте так:
Код:
...
$rezult=[];
while ($row = mysqli_fetch_array($result,MYSQLI_NUM)){
  $rezult=$rezult + [$row[0]=>$row[1]];
}
$idprodprice_encode = json_encode((object) $rezult);
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 09.09.2019, 20:16   #18
Дмитрий82
Пользователь
 
Регистрация: 10.10.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
$rezult=[];
while ($row = mysqli_fetch_array($result,MYSQLI_N UM)){
$rezult=$rezult + [$row[0]=>$row[1]];
}
$idprodprice_encode = json_encode((object) $rezult);
отлично работает спасибо большое, вот результат {"2":"3500","5":"9900","4":"100" }
Дмитрий82 вне форума   Ответить с цитированием
Старый 10.09.2019, 11:15   #19
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,235
По умолчанию

пожалуйста! Успехов!
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы - Спроектировать и разработать классы Запись в блокноте и Блокнот. Реализовать методы: Добавить запись, Удалить запись, Редактировать запись SashaRozhkov Помощь студентам 0 05.08.2017 20:16
процедура на удаление, удаляет запись из Combobox1, а как сделать что бы еще удалялись запись из полей EDIT? ИвановБ Общие вопросы Delphi 21 22.12.2016 02:28
Дан массив размера N, все элементы которого, кроме последнего, упорядочены по возрастанию. Сделать массив упорядоченным. nadyaH Помощь студентам 31 26.03.2014 11:15
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
не могу сделать запись в таблице FAiver БД в Delphi 7 01.09.2010 14:59


14:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.