За последние 24 часа нас посетили 62698 программистов и 1677 роботов. Сейчас ищут 992 программиста ...

не работает INSERT

Тема в разделе "PHP и базы данных", создана пользователем immortal.1986, 3 дек 2013.

  1. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    есть функция в каторую летять данные из цыкла какторый переберает файл КСВ!
    Сразу скажу переменые все нормальные не пустые валидные одним словом!
    Код (Text):
    1. function sales($uniq,$q,$s,$kg,$date){
    2.        
    3.         $uniq = mysql_real_escape_string($uniq);
    4.         //$dDate = str_replace(".","-",$date);
    5.         $dDate = "2013-11-29";
    6.         $delivery = $dDate;
    7.        
    8.         mysql_query("CREATE TABLE IF NOT EXISTS `sales` (
    9.                     `id` int(11) NOT NULL AUTO_INCREMENT,
    10.                     PRIMARY KEY (`id`),
    11.                     `segment` int(11) NOT NULL,
    12.                         FOREIGN KEY (segment) REFERENCES segment (id),
    13.                     `tt` int(11) NOT NULL,
    14.                         FOREIGN KEY (tt) REFERENCES tt (id),
    15.                     `uniq` varchar(255) NOT NULL,
    16.                     `tmc` int(11) NOT NULL ,
    17.                         FOREIGN KEY (tmc) REFERENCES tmc (id),
    18.                     `region` int(11) NOT NULL ,
    19.                         FOREIGN KEY (region) REFERENCES region (id),
    20.                     `date` DATETIME NOT NULL,
    21.                     `delivery` DATETIME NOT NULL,
    22.                     `q` int(11) NOT NULL,
    23.                     `s` float(11) NOT NULL ,
    24.                     `kg` float(11) NOT NULL
    25.                     ) ENGINE=InnoDB DEFAULT CHARSET=utf8"
    26.                     );
    27.                    
    28.  
    29.                
    30.                
    31.                 $tmcid = $GLOBALS[tmc][id];
    32.                 $segid = $GLOBALS[segment][id];
    33.                 $ttid = $GLOBALS[tt][id];
    34.                 $regid = $GLOBALS[region][id];
    35.                
    36.        
    37.     mysql_query("INSERT INTO sales (segment,tt,uniq,tmc,region,date,delivery,q,s,kg )
    38.             VALUES($segid,$ttid,'".$uniq."',$tmcid,$regid,CAST ('$dDate' AS DATETIME),CAST ('$delivery' AS DATETIME),$q,$s,$kg)");
    39.                    
    40.                
    41.  
    42.                
    43. }
    таблица создаётся!(а вот инсёрт не делается)
    к слову тум еще создаются таблицы.... так там всё нормально! а вот эта не хочет подскажите шо за.....
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
  3. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Спасибо !!! было включенно но НОТИСЫ не показывала!!!!
    выдало оштибку
    Notice: Use of undefined constant region - assumed 'region' in Z:\home\localhost\www\csv\olap.php on line 150
    ща буду смотреть!

    Добавлено спустя 3 минуты 58 секунд:
    $tmcid = $GLOBALS[tmc][id];
    заменил $tmcid = $GLOBALS['tmc']['id'];

    все ошибки пропали!!!!! ну всё равно не работает
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ну еще раз ту же страничку почитай )))

    Добавлено спустя 4 минуты 44 секунды:
    + еще доку по mysql_query. в примерах самое интересное
     
  5. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    вроде всё так и делаю!!! .... ну видать что то туплю просто 3 день перебераю!!!! ДЕЛО В ТОМ ЧТО ОНО У МЕНЯ РАБОТАЛО,писал циклично функцию-работает,дальше,итд
    вот например есть функции
    function segment($id1c,$name){
    function region($id1c,$name){
    function partner($id1c,$name,$type){
    итд они создают таблицы и ИНСЁРТАТ туда данные ...... все ОТЛДИЧНО РАБОТАЕТ!!!!!!!
    далее создаю таблицу SALES все создано отлично!!!!! пигу инсёрт все мертвое поле!!!!!!!


    ВРОДЕ НЕ ЧЕГО НЕ МЕНЯЛ кординального!!!!!!!!!!!! пришел грубо говоря после перекура все не работает и пи.....ц
    хоть толкнике в какуйто степь!!! дебагом по возможности пробовал рабобать(тоесть вкл ошибки у видел подправил итд)


    Вот сам индекс
    Код (Text):
    1. <?php header('Content-Type: text/html; charset=windows-1251');
    2. ?>
    3. <?php
    4.  
    5. include_once "olap.php";
    6.  
    7. connector();
    8. $row = 1;
    9. if (($handle = fopen("test.csv", "r")) !== FALSE) {
    10.    while (($data = fgetcsv($handle, 10000, ";")) !== FALSE){
    11.                 if($row > 1){
    12.                     segment($data[1],$data[0]);
    13.                     region($data[5],$data[4]);
    14.                     partner($data[17],$data[18],$data[19]);
    15.                     tt($data[20],$data[21]);
    16.                     tmc($data[24],$data[25]);
    17.                     sales($data[27],$data[31],$data[32],$data[33],$data[12]);
    18.                            
    19.                          
    20.                     }
    21.                     $row++;
    22.                    
    23. }
    24.    fclose($handle);
    25.    
    26.    
    27.    
    28. }
    29. ?>
    Добавлено спустя 9 минут 7 секунд:
    блин уже по 3 разу штудирую
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    … еще доку. читай пока не увидишь что там написано.
     
  7. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Спасибо Друг,дал оч дельные ссылки! ЕЩЕ РАЗ СПАСИБО!!!
    задачу на данном этапе решил!!
    НУ ВОТ СКАЖИ плз в чем разница этих двух запросов!?

    mysql_query("INSERT INTO sales (segment,tt,uniq,tmc,region,date,delivery,q,s,kg )
    VALUES($segid,$ttid,'".$uniq."',$tmcid,$regid,CAST ('$dDate' AS DATETIME),CAST ('$delivery' AS DATETIME),$q,$s,$kg)");

    mysql_query("INSERT INTO sales (segment,tt,tmc,region,q,s,kg,date,delivery,uniq)
    VALUES($segid,$ttid,$tmcid,$regid,$q,$s,$kg,CAST('$dDate' AS DATETIME),CAST('$delivery' AS DATETIME),'".$uniq."')");

    соотвественно 1 рабочий другой нет!
    ну вот не пойму помогите ПОНЯТЬ
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    не надо гадать. mysql_error что говорит? как выглядит готовый запрос?

    что вижу я по ссылкам, которые давал:
    не думай, что здесь сидят какие-то волшебники с мозгом в 1м³. никто не просчитает все вероятные ошибки за тебя — отлаживайся.
     
  9. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    не поняль что вы имеете ввиду под готовым запросом!! ЭТО ПОКА ТОЛЬКО ЗАГОТОВКА ГОТОВОГО ПРОЕКТА и может много еще не доведенна до ума! (эта ж разработка потом будет потпровлятся)
    рабочая ф-я
    Код (Text):
    1. function sales($uniq,$q,$s,$kg,$date){
    2.        
    3.         $uniq = mysql_real_escape_string($uniq);
    4.         //$dDate = str_replace(".","-",$date);
    5.         $dDate = "2013-11-29";
    6.         $delivery = $dDate;
    7.        
    8.         mysql_query("CREATE TABLE IF NOT EXISTS `sales` (
    9.                     `id` int(11) NOT NULL AUTO_INCREMENT,
    10.                     PRIMARY KEY (`id`),
    11.                     `segment` int(11) NOT NULL,
    12.                         FOREIGN KEY (segment) REFERENCES segment (id),
    13.                     `tt` int(11) NOT NULL,
    14.                         FOREIGN KEY (tt) REFERENCES tt (id),
    15.                     `uniq` varchar(255) NOT NULL,
    16.                     `tmc` int(11) NOT NULL ,
    17.                         FOREIGN KEY (tmc) REFERENCES tmc (id),
    18.                     `region` int(11) NOT NULL ,
    19.                         FOREIGN KEY (region) REFERENCES region (id),
    20.                     `date` DATETIME NOT NULL,
    21.                     `delivery` DATETIME NOT NULL,
    22.                     `q` int(11) NOT NULL,
    23.                     `s` float(11) NOT NULL ,
    24.                     `kg` float(11) NOT NULL
    25.                     ) ENGINE=InnoDB DEFAULT CHARSET=utf8"
    26.                     );
    27.                
    28.                 $tmcid = $GLOBALS['tmc']['id'];
    29.                 $segid = $GLOBALS['segment']['id'];
    30.                 $ttid = $GLOBALS['tt']['id'];
    31.                 $regid = $GLOBALS['region']['id'];
    32.                
    33.     mysql_query("INSERT INTO sales (segment,tt,tmc,region,q,s,kg,date,delivery,uniq)
    34.             VALUES($segid,$ttid,$tmcid,$regid,$q,$s,$kg,CAST('$dDate' AS DATETIME),CAST('$delivery' AS DATETIME),'".$uniq."')");
    35.                        
    36. }
    а поповоду мускул_ерор ----> надо типо так ..

    $sql = "INSERT INTO sales (segment,tt,tmc,region,q,s,kg,date,delivery,uniq)
    VALUES($segid,$ttid,$tmcid,$regid,$q,$s,$kg,CAST('$dDate' AS DATETIME),CAST('$delivery' AS DATETIME),'".$uniq."');

    if(!mysql_query($sql))
    mysql_error($sql);
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    я добавил в свой пост выше
     
  11. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    echo САМ ЗАПРОС!!! вроде все ок! не где нету непонятных ковичек,нету разных o`brainov итд!!!! я согласен что гдето что то не так, ну я вот просто в панике в запросе меня просто местами поля работает ставлю обратно не работает!!!! просто в панике!!!! Ладно впринцепи что тут разводить демогогию!!!!! СПАСИБО за помощь,за ссылки -- в обед еще раз почитаю! ну и за то что не остались в стороне! низкий поклон

    Добавлено спустя 13 минут 53 секунды:
    ДРУЖИШЕ Я ЛЮБЛЮ ТЕБЯ ..... твой mysql_error ЭТО ВЕЩЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    он мне ткнул БАРАНУ на ошибку!!!!!
    $sqlSales = "INSERT INTO sales (segment,tt,uniq,tmc,region,date,delivery,q,s,kg )
    VALUES($segid,$ttid,'".$uniq."',$tmcid,$regid,CAST('$dDate' AS DATETIME),CAST('$delivery' AS DATETIME),$q,$s,$kg)";
    ошибка была в пробелах после CAST нельзя там пробелы!!!!!!!!!!!!!!!!!!!!!!!!!