За последние 24 часа нас посетили 16575 программистов и 1649 роботов. Сейчас ищут 1578 программистов ...

Помоги написать sql запрос...

Тема в разделе "Вопросы от блондинок", создана пользователем EvelRus, 11 янв 2011.

  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Задача: занести в БД значения... есть три поля - галактика, солнечная система, планета.
    Галактика принимает значения от 1 до 9, СС - от 1 до 499, планета от 1 до 15.
    Надо занести в БД значения во все три поля по системе:
    1-1-1
    1-1-2
    ...
    1-499-15
    ...
    9-499-15

    никак не могу понять (даже на уровне простой логики) как извратиться чтобы составить три цикла одно внутри другого
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    PHP:
    1. <?php
    2. $maxGal=9;
    3. $maxSS=499;
    4. $maxPlan=15;
    5. for($i=1;$i<=$maxGal;$i++){
    6.     for($j=1;$j<=$maxSS;$j++){
    7.         for($k=1;$k<=$maxPlan;$k++){
    8.             $db->query("insert into table(gal, ss, pl) values ($i, $j, $k)");
    9.         }
    10.     }
    11. }
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    СПАСИБО!!!!!!!!!!!!!!!!!!
     
  4. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Ну чтож... в итоге база из полутра миллиона записей (26 раз по полному циклу) и база весит почти 60 мегов ))
     
  5. Jampire

    Jampire Активный пользователь

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    Огама?
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Это типа много? ;)
     
  7. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Именно

    Для пустой базы ИМХО да
     
  8. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    эмм, наверное я не понимаю чего-то ))
     
  9. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Ну так в базе только цифры... 6 цифр в каждой записи и больше ничего
     
  10. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    ну полтора миллиона это много. А вот 50 метров - мало (тоже ИМХО)

    А у цифр формат столбцов INT(11) ? Просто интересно, если изменить на INT(3) что-то изменится?
     
  11. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    А какие типы полей-то?
     
  12. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Если заменить на INT(3) - ничего не изменится, в скобочках только сколько цифр отображать при выборке, в не сколько хранить, на сколько помню.
    А вот если изменить INT на SMALLINT - изменится.
     
  13. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    sobachnik
    Да, ты прав, вне зависимости от ограничения числа символов запись занимает 4 байта
     
  14. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    [sql] `og_g` enum('1','2','3','4','5','6','7','8','9') NOT NULL,
    `og_s` int(3) NOT NULL,
    `og_p` enum('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15') NOT NULL,[/sql]
     
  15. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    enum я бы заменил на tinyint а int(3) на smallint
     
  16. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    зачем?
    enum автоматом защищает от неверных значений, а смалинт не много помощи даст :)