SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.03.2013 12:40:58

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Создать таблицу по запросу

Добрый день!
Есть скрипт, который должен вычисляет определённые значения и олжен писать их в таблицу. Кусок взаимодействия с MySQL выглядит так:

foreach($data as $rdata) {
            $query = "UPDATE `events` SET `TIMESTAMP`='$rdata[0]',`MONEYLINE_S`='$rdata[9]',`TOTAL_S`='$rdata[12]' WHERE `GAMENUMBER`='$rdata[4]' AND `MONEYLINE_VISITING`='$rdata[6]' AND `MONEYLINE_HOME`='$rdata[7]' AND `MONEYLINE_DRAW`='$rdata[8]' AND `TOTAL_POINTS`='$rdata[13]' AND `UNDER_ADJUST`='$rdata[10]' AND `OVER_ADJUST`='$rdata[11]' AND `SPREAD_VISITING`='$rdata[14]' AND `SPREAD_ADJUST_VISITING`='$rdata[15]' AND `SPREAD_HOME`='$rdata[16]' AND `SPREAD_ADJUST_HOME`='$rdata[17]'";
            mysql_query($query);
            if(!mysql_affected_rows()) {
                $query = "INSERT INTO `events` (`TIMESTAMP`,`EVENT_DATETIMEGMT`,`SPORTTYPE`,`LEAGUE`,`GAMENUMBER`,`PARTICIPANT_NAME`,`MONEYLINE_VISITING`,`MONEYLINE_HOME`,`MONEYLINE_DRAW`,`MONEYLINE_S`,`TOTAL_POINTS`,`UNDER_ADJUST`,`OVER_ADJUST`,`TOTAL_S`,`SPREAD_VISITING`,`SPREAD_ADJUST_VISITING`,`SPREAD_HOME`,`SPREAD_ADJUST_HOME`) VALUES ('$rdata[0]','$rdata[1]','$rdata[2]','$rdata[3]','$rdata[4]','$rdata[5]','$rdata[6]','$rdata[7]','$rdata[8]','$rdata[9]','$rdata[13]','$rdata[10]','$rdata[11]','$rdata[12]','$rdata[14]','$rdata[15]','$rdata[16]','$rdata[17]')";
                mysql_query($query);
            }

      }

      $query = "DELETE FROM `events` WHERE `EVENT_DATETIMEGMT` < '$rdata[0]'";
      mysql_query($query);
 


Можно ли зная этот запрос создать таблицу, в которую всё это пишется, и как это сделать? Я понимаю, что вопрос скорее всего глупый, но тем не менееsmile

Неактивен

 

#2 19.03.2013 12:58:10

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

Разве что примерно можно структуру воссоздать. Если приведете непосредственные тексты запросов (а то непонятно, что скрывается за $rdata[1] и пр. ), то будет значительно проще это сделать wink.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 19.03.2013 13:39:23

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

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

Неактивен

 

#4 19.03.2013 14:02:15

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

поставьте
print $query;
после каждого формирования запроса (перед mysql_query($query) ).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 19.03.2013 14:24:19

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

UPDATE `events` SET `TIMESTAMP`='2013-03-19 10:24:43',`MONEYLINE_S`='6817',`TOTAL_S`='0' WHERE `GAMENUMBER`='108633243' AND `MONEYLINE_VISITING`='2.26' AND `MONEYLINE_HOME`='1.79' AND `MONEYLINE_DRAW`='0' AND `TOTAL_POINTS`='0' AND `UNDER_ADJUST`='0' AND `OVER_ADJUST`='0' AND `SPREAD_VISITING`='0' AND `SPREAD_ADJUST_VISITING`='0' AND `SPREAD_HOME`='0' AND `SPREAD_ADJUST_HOME`='0'

Например такой

Неактивен

 

#6 19.03.2013 16:30:18

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

TIMESTAMP может быть datetime
те данные, которые числовые попробуйте описать как integer
дробные как float
строки, если попадутся - как text или varchar(1024)
Ну а дальше - http://dev.mysql.com/doc/refman/5.1/en/ … table.html


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 19.03.2013 19:04:02

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

С типами данных я разберусь наверное, и запрос на создание тоже смогу составить...
Я просто не могу понять, как она в принципе должна выглядеть, эта таблица, получается в ней 3 столбца и 11 строк? и она каждый раз заново полностью перезаписывается?

Неактивен

 

#8 19.03.2013 19:10:34

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

Почему 3 столбца и 11 строк?


UPDATE
  `events`
SET
  `TIMESTAMP`='2013-03-19 10:24:43',`
  MONEYLINE_S`='6817',
  `TOTAL_S`='0'
WHERE
  `GAMENUMBER`='108633243' AND
  `MONEYLINE_VISITING`='2.26' AND
  `MONEYLINE_HOME`='1.79' AND
  `MONEYLINE_DRAW`='0' AND
  `TOTAL_POINTS`='0' AND
  `UNDER_ADJUST`='0' AND
  `OVER_ADJUST`='0' AND
  `SPREAD_VISITING`='0' AND
  `SPREAD_ADJUST_VISITING`='0' AND
  `SPREAD_HOME`='0' AND
  `SPREAD_ADJUST_HOME`='0'
 

Обновляются три поля, если 11 других равны определенным значениям. Итого 14 полей (как минимум)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 19.03.2013 19:13:56

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

Судя по запросу INSERT есть еще поля  -`EVENT_DATETIMEGMT`,`SPORTTYPE`,`LEAGUE`,`PARTICIPANT_NAME` - итого 18 как минимум.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#10 19.03.2013 22:53:29

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

Пашочек написал:

С типами данных я разберусь наверное, и запрос на создание тоже смогу составить...
Я просто не могу понять, как она в принципе должна выглядеть, эта таблица, получается в ней 3 столбца и 11 строк? и она каждый раз заново полностью перезаписывается?

Не думаю, что она полностью перезаписывается - как видите, для того, чтобы прошло обновление каких-то строк необходимо выполнение 11 условий.

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


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 21.03.2013 12:56:35

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

deadka написал:

Вы не пробовали зайти с другой стороны - попытаться раздобыть какую-то документацию на эту базу?

Конечно, это было первое, что я попытался сделать...И, к сожалению, безрезультатноsmile

Неактивен

 

#12 21.03.2013 13:06:28

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

я тут погуглил синтаксис команды UPDATE, вот здесь, например, написано, что после SET указываются столбцы, а после WHERE идут строки, подлежащие обновлению. Получается, что в нашем случае в 3-х столбцах обновляется по 11 строк? а учитывая, что это единственное упоминание SQL в скирипте, и кроме него с этой базой никто другой не работает(в чём я уверен процентов на 95), то получается в нашей таблице 3 столбца по 11 строк в каждой? или я чего-то не так понимаю?

Неактивен

 

#13 21.03.2013 13:07:33

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

Прошу сильно не ругать, если глупости пишу, просто в первый раз сталкиваюсь со всем этим))

Неактивен

 

#14 23.03.2013 16:04:01

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Создать таблицу по запросу

Пашочек написал:

я тут погуглил синтаксис команды UPDATE, вот здесь, например, написано, что после SET указываются столбцы, а после WHERE идут строки, подлежащие обновлению. Получается, что в нашем случае в 3-х столбцах обновляется по 11 строк? а учитывая, что это единственное упоминание SQL в скирипте, и кроме него с этой базой никто другой не работает(в чём я уверен процентов на 95), то получается в нашей таблице 3 столбца по 11 строк в каждой? или я чего-то не так понимаю?

После WHERE тоже идут имена столбцов, как и до WHERE.

Как я уже писал выше, в таблице как минимум 18 полей. В запросе обновляются три поля - `TIMESTAMP`, MONEYLINE_S, `TOTAL_S`. Обновляются в тех строках, где 11 полей имеют определенные значения, указанные в WHERE в update-запросе.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#15 26.03.2013 17:15:34

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

Спасибо за консультацию. Буду разбираться.

Неактивен

 

#16 26.03.2013 21:08:53

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Создать таблицу по запросу

Судя по количеству совпадений имен - это база работающая с API pinnaclesports, причем с устаревшей версией - думаю имеет смысл копнуть в сторону той доки. Но все равно мне кажется это безнадежным занятием реинженеринг БД по php-коду. Возможно проще будут переосмыслить задачу и написать с нуля

Неактивен

 

#17 27.03.2013 16:22:55

Пашочек
Участник
Зарегистрирован: 19.03.2013
Сообщений: 9

Re: Создать таблицу по запросу

Shopen написал:

Судя по количеству совпадений имен - это база работающая с API pinnaclesports, причем с устаревшей версией - думаю имеет смысл копнуть в сторону той доки. Но все равно мне кажется это безнадежным занятием реинженеринг БД по php-коду. Возможно проще будут переосмыслить задачу и написать с нуля

Почти, только не pinnaclesports, а Betfair.
Скрипт сканит рынки и пишет в базу. Можно даже разобраться, что и откуда он берёт, но не думаю, что это поможет...
А с нуля я боюсь такую штуку не напишуsmile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson