Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
У меня не получается выбрать уже записанное значение из одной таблицы и вставить его в другую. Для начала покажу весь код: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. INSERT INTO games_result - я получаю все значения корректно, кроме res_game_id - возвращается ноль. Мне нужно взять значение поля id из таблицы games (SELECT) и вставить его в поле res_game_id таблицы games_result (INSERT INTO) Ошибка где-то здесь: Код: php 1. 2. но где именно? Видимо, неправильно формирую сам запрос. Пробовал разные варианты, но безуспешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 04:35 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smartonINSERT INTO games_result - я получаю все значения корректно, кроме res_game_id - возвращается ноль.Не понятно, как это Вы делаете запись данных, а при этом ноль возвращается . И еще. Странный подход к работе с СУБД. В одном месте Вы используете объект $db, а в другом последнее установленное соединение (функции mysql_*). Или данные берете из одной базы, а пишите в другую? smartonОшибка где-то здесь: Код: php 1. 2. Возможно. Не думаю, что использование mysql_result() здесь как-то оправдано. Во всяком случае, вторым обязательным параметром функция желает получить мануал row Номер получаемого ряда из результата. Нумерация рядов начинается с 0. число, а Вы ей подсунули текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 08:02 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkleНе понятно, как это Вы делаете запись данных, а при этом ноль возвращается . В базе данных стоит по умолчанию ноль - из-за этого на выходе (когда запрос не работает) получаю ноль, нужно изменить на NOT NULL. Но проблема не в этом. Я переписываю код старого движка под новый и логика запросов у них разная, поэтому у меня получился такой странный подход. Почитал немного инструкции, пробовал такой вариант (полностью избавлялся от mysql_result() ): Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В общем, все равно проблема где-то в связке. Выделил то, где может быть ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 13:30 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkleНе понятно, как это Вы делаете запись данных, а при этом ноль возвращается . Хотя вы знаете, убираю в таблице DEFAULT '0', все равно ноль возвращается. Странно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 14:02 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smarton, Так посмотрите уже реальный текст запросов, а не код, их формирующий. Может Вы по какой-то причине пишите туда 0 вместо нужного значения. Если так оно и есть - ищите, откуда этот ноль лезет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 14:08 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Все-таки проблема в том, как я формирую код запроса. Все лишнее убрал, оставил только то, где проблема. Еще раз объясню, что мне нужно. Из таблицы games взять значение поля id (это порядковый номер игры) и вставить его в поле res_game_id таблицы games_result. Для этого я сначала проверяю существование поля id в таблице games. Затем через функцию if(!$check){..} вставляю запросом в поле res_game_id таблицы games_result. Код: php 1. 2. 3. 4. 5. Пробовал такие варианты: if(!$check){..} if($check){..} if(!$check[id]){..} Использовал row, ничего не меняется. Объясните как правильно формировать такие запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 00:34 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Думаю, в моем случае нужно дописывать код. В базу данных не передается id игры, которая была запущена. Вышеуказанным кодом я отправляю запрос в базу выбираю id игры, но не ясно, какой именно id (порядковый номер) нужен. Скорее всего поэтому ничего не вставляется в другую таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 00:45 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Как узнать какие POST дает на выходе игра в формате .swf? Залезть в исходный код или можно через программы или запрос php? В исходном коде я нашел это (искал по запросу POST): Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. В коде фигурирует gname, которое должно выводится через POST. Название игры я имею - flycatcherSte, хотя чуть ниже в коде несколько другое название: Код: html 1. Что теперь мы имеет? Пост должен выдавать название игры (flycatcherfrogSte) через Constant Name, а именно gname. Далее... У меня в базе должна быть запись с именем игры. Когда я получаю пост и именем игры после ее завершения, я сравниваю значение POST, которое равно flycatcherfrogSte с тем, что у меня записано в поле "название игры". Если я нахожу соответствие, то беру id этого поля и вставляю в нужную мне таблицу/поле через запрос, который я писал выше. Я правильно понимаю? Поправьте, если не так. Модератор: Тема перенесена из форума "MySQL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 01:24 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Если я все правильно понял, то код должен быть таким (сделал описание строк): Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но опять я получаю все, кроме res_game_id (таблица games_result). Это капец какой-то... Что неправильно? Уже сам себе разжевал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 02:12 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smartonЭто капец какой-то...Это не капец, это типичная ситуация, возникающая при использовании метода Тыка. Разумеется, этот метод иногда позволяет сделать что-то простенькое при отсутствии базовых знаний в предметной области, но чаще всего требует довольно много времени для достижения результата. Кроме того, это время в разы увеличивается при выключении отображения сообщений об ошибках и полном отсутствии контроля промежуточных значений переменных. В приведенном выше куске кода на десяток строк добрая половина вызывает вопросы. В частности, автор Код: php 1. Тут вообще мистика какая-то. Проверка выполнения запроса обычно проводится путем контроля ответов от СУБД. Тот же PHP предоставляет такие возможности. Например, функция mysql_query() возвращает false при явной ошибке в выполняемом запросе. Еще можно при помощи соответствующих функций прочитать конкретные сообщения об ошибке от СУБД. Но "мы пойдем другим путём!". Вы проверяете выполнение запроса путем поиска начала "ничего" (второй, отсутствующий, аргумент функции stripos() согласно инструкции по использованию ) в идентификаторе игры, полученном строкой ранее. Разумеется, всякий приличный интерпретатор PHP обязан в таком случае возмутиться и намекнуть разработчику о том, что неплохо было бы сделать всё как надо, но... Вы же не дружите ни с Отладкой, ни с Документацией... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 08:58 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkle Вы же не дружите ни с Отладкой, ни с Документацией... Да, вы правы. PHP не мой хлеб. По жизни я занимаюсь другим, но появилась необходимость сделать этот код для себя. Думаю, на данном этапе правильно вернуться к самому началу, потому что залез в дебри. Вот оригинал кода, написанный для Social Engine: Код: php 1. 2. 3. 4. 5. 6. 7. Данный код работал без проблем, сам проверял. Вот адаптированный мною код для DLE (с корректировкой, на которую указали мне вы - выделено красным): Код: php 1. 2. 3. 4. 5. 6. Но вы говорите, что использование mysql_result() здесь не оправдано". Я использую объект $db->query, потому что сам движок этого требует. Объект "$database->database_query" он (движок) не принимает. Логически я понимаю, что проблема в этих двух строках: Код: php 1. 2. но как их исправить до меня не доходит в силу ограниченности моих знаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 15:51 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smarton, Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 20:26 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Lumix Код: php 1. Не заработало, но подозреваю, что сама игра через $_POST['gname'] дает значение ноль и пишет его в базу. Пришел к такому выводу следующим образом: Первый вариант. Вместо переменной $gname поставил заведомо правильное значение поля (выделено красным) Код: php 1. 2. 3. Отдельно проверил запрос SELECT id FROM games WHERE flash = 'flycatcherfrogSte.swf', который возвращает значение 1 - все верно. Второй вариант. Оставил только запрос INSERT INTO, в котором сразу указываю запись значения gname (которое передает игра) в поле res_game_id. Код: php 1. Все равно получаю ноль. То есть сама игра дает на выходе значение нуль. Почему так - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 21:22 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smartonvkle Вы же не дружите ни с Отладкой, ни с Документацией... Да, вы правы. PHP не мой хлеб. По жизни я занимаюсь другим, но появилась необходимость сделать этот код для себя.Не проще ли было нанять специалиста в данной области? Не думаю, что решение подобной задачи стоит мегадорого. Но если у Вас есть интерес вникнуть в тему, так хотя бы заглядывайте в документацию по PHP. На русском есть версия, примеров там хватает. По части отладки в первом приближении ничего нет сложного. Пишите Код: php 1. и смотрите, что вывелось. Таким образом, узнаете значение переменной. Текст запроса тоже есть смысл посмотреть полностью. И сообщение об ошибке после выполнения запроса. То есть, вместо строчки smarton Код: php 1. Пишите Код: php 1. 2. 3. 4. 5. Таким образом проблемное место находится очень быстро. И включите уже вывод сообщений об ошибках в PHP. По крайней мере, на время допиливания и отладки кода. Там вроде даже ссылки на документацию по проблемной функции есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 21:36 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smartonно подозреваю, что сама игра через $_POST['gname'] дает значение нольНу так Код: php 1. для снятия подозрений! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 21:37 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Еще одним способом проверил гипотезу, что игра на выходе дает вместо имени flycatcherfrogSte значение ноль. Поставил заведомо неверную переменную POST (выделено красным): Код: php 1. и магический ноль исчез. Теперь пустая строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 21:42 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkle, понял, спасибо большое! Буду разбираться и приму во внимания ваши рекомендации. Хочется понять самому, без специалиста. Уже дело принципа :) О результате напишу дополнительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 21:46 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkleТекст запроса тоже есть смысл посмотреть полностью. И сообщение об ошибке после выполнения запроса. То есть, вместо строчки smarton Код: php 1. Пишите Код: php 1. 2. 3. 4. 5. Таким образом проблемное место находится очень быстро. Спасибо за рекомендацию и помощь. Проблема оказалась совершенно в другом. Код: php 1. 2. Не пускает выполнять код. А сама игра передает это несчастное gname. То есть ноль я имею из-за отказа в доступе. На запрос $db->query() не ругается, передает значения в базу. Я правильно понимаю, что проблема в использовании функции mysql_query() и для нее нужно отдельно писать авторизацию с базой или переписывать, используя объект $db->query()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 00:07 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smartonЯ правильно понимаю, что проблема в использовании функции mysql_query() и для нее нужно отдельно писать авторизацию с базой или переписывать, используя объект $db->query()?Проблему правильно понимаете. Однако, "писать авторизацию", а правильнее сказать, устанавливать новое соединение с СУБД - это весьма дурной тон (открываете лишнее соединение) и дополнительные проблемы (смените пароль к БД - придется править в двух местах, например). Раз уж в движке используется какой-то способ (класс) связи с СУБД, так правильным будет его и использовать в своих доработках. Там наверняка сделано всё "как надо" - соединение уже установлено, инициализировано и возможные глюки при работе с СУБД не вылезут больше чем "в среднем по движку". По хорошему, следует найти класс, который поддерживает объект $db и посмотреть доступные методы (обработку запросов, возвращение результата, возвращение ошибки). Можно и по-простому, но придется "потыкаться" (и не факт, что немного) - найти в коде факты использования этого объекта в аналогичных ситуациях (видах запросов) и на их основе написать свое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 00:24 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkleМожно и по-простому, но придется "потыкаться" (и не факт, что немного) - найти в коде факты использования этого объекта в аналогичных ситуациях (видах запросов) и на их основе написать свое. Я этот метод уже использовал. Все, что я писал выше, это были попытки применить работающий код из разных модулей в данной ситуации. Чаще всего используется подобный код: Код: php 1. 2. 3. 4. а также Код: php 1. 2. 3. 4. Но скорее всего я не то применял. Поищу еще. vkleПо хорошему, следует найти класс, который поддерживает объект $db и посмотреть доступные методы (обработку запросов, возвращение результата, возвращение ошибки). С классом не разбирался, не изучал его. Мне проще было примеры использования смотреть. На всякий случай загрузил класс базы в аттач, если будет жаление, посмотрите. Он с открытой лицензией и есть в свободном доступе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 00:51 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
smartonС классом не разбирался, не изучал его. Мне проще было примеры использования смотреть.Ну и зря. Беглым взглядом видно, что метод super_query, который Вы пытаетесь использовать, слишком заумный для данной задачи. Может он тоже подойдет, но вот прямо сейчас с ним разбираться нет желания. Но есть простой и понятный метод query. После выполнения запроса в свойствах mysql_error и mysql_error_num хранятся соответственно текст и номер ошибки, которые, впрочем, сразу должны отобразиться (хоть это и вроде как не совсем корректно), если второй параметр методу не передан или передан true. Сам же метод query возвращает ресурс запроса, который затем можно обработать (получить из него данные) методом get_row или get_array. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 01:07 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
Получится примерно так Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 01:15 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
получили Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 01:23 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
вот она, долгожданная единица, а не ноль)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 01:25 |
|
||
|
Выбрать значение из одной таблицы и вставить его в другую (PHP)
|
|||
|---|---|---|---|
|
#18+
vkleПолучится примерно так Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Итого получаем: Код: php 1. 2. 3. 4. 5. vkle, спасибо вам большое, очень помогли! Тяжело мне это далось))) Но я доволен, что не бросил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2014, 02:02 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38704423&tid=1462581]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
93ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 469ms |

| 0 / 0 |
