Posted 22 января, 20177 yr comment_120886 Всем привет, пишу пополнение счета на форуме с использованием Robokassa и столкнулся с проблемой, запрос правильный а работать не хочет как не пинай. В базе все возвращает а вот вардамп ROW NULL Сам запрос. \IPS\Db::i()->Select("r.order_id, r.userid, r.money, r.status, r.date, r.crc, r.status1, m.member_id", array( "rkassa", "r" ), array("r.order_id = 1485120238"), NULL, 1)->join(array( 'core_members', 'm' ), array( 'r.userid = m.member_id' )); Спойлер Спойлер
22 января, 20177 yr Author comment_120889 1 минуту назад, Silence сказал: А что ета 'r.' ....? Обозначение к какой таблице относится то или иное поле, в данном случае мы берем из rkassa и присваиваем поля к букве r поле берем от туда order_id а из core_members берем member_id затем ON сравнение есть ли соответствие userid == member_id и выводим результат по WHERE order_id = значение. Если есть то выводим ответ. В данном случае в самой базе запрос работает а вот форум выполнять это не хочет. Почитай по JOIN sql запросы)) Проще так показать 10 минут назад, Silence сказал: А что ета 'r.' ....? Спойлер
22 января, 20177 yr comment_120890 \IPS\Db::i()->select( '*', "r.order_id, r.userid, r.money, r.status, r.date, r.crc, r.status1, m.member_id", array( "rkassa", "r" ), array("r.order_id = 1485120238"), NULL, 1)->join(array( 'core_members', 'm' ), array( 'r.userid = m.member_id' ));
22 января, 20177 yr Author comment_120891 2 минуты назад, Silence сказал: \IPS\Db::i()->select( '*', "r.order_id, r.userid, r.money, r.status, r.date, r.crc, r.status1, m.member_id", array( "rkassa", "r" ), array("r.order_id = 1485120238"), NULL, 1)->join(array( 'core_members', 'm' ), array( 'r.userid = m.member_id' )); Нее SELECT r.* FROM `m.member_id` LEFT JOIN `core_members` AS `m` ON r.userid = m.member_id WHERE rkassa GROUP BY `1` ORDER BY r.order_id = 1485120238 3 минуты назад, Silence сказал: \IPS\Db::i()->select( '*', "r.order_id, r.userid, r.money, r.status, r.date, r.crc, r.status1, m.member_id", array( "rkassa", "r" ), array("r.order_id = 1485120238"), NULL, 1)->join(array( 'core_members', 'm' ), array( 'r.userid = m.member_id' )); SELECT r.*, m.* FROM `rkassa` AS `r` LEFT JOIN `core_members` AS `m` ON r.userid = m.member_id WHERE r.order_id = 1485120238 LIMIT 1 Спойлер 1 sql запрос идёт сразу в 2 таблицы. rkassa и core_members, и выводит информацию сразу из 2 таблиц, поэтому я приписываю к r. определенное поле тоесть указав r.* и m.* он покажет мне все результаты с двух таблиц а я вытаскиваю только мне нужные.
22 января, 20177 yr Author comment_120892 Сам решил $query = \IPS\Db::i()->query("SELECT r.order_id, r.userid, r.money, r.status, r.date, r.crc, r.status1, m.member_id FROM `rkassa` AS `r` LEFT JOIN `core_members` AS `m` ON r.userid = m.member_id WHERE r.order_id = 1485120238 LIMIT 1"); $query = $query->fetch_assoc(); var_dump($query);
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.