Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с INSERT 
V
    Опции темы
hetfield
Дата 17.10.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 26.11.2007

Репутация: нет
Всего: нет



Добрый день... Не могу разобраться с ошибкой, помогите...

У меня есть список товаров в каталоге, напротив каждого стоит text поле, куда вводим количество... После сабмита перебираю все товары, в которых заполнено поле
Код

$insert = "";
foreach ($_POST as $key => $value) {
        if ((substr($key, 0, 5) == "tovar") and ($value !== "" )) {
            $tovar_id = substr($key, 6);
            
            $tovar_id = $tovar_id;
            $tovar_kol = $value;

            $query_kat = ("SELECT articul, name FROM `katalog` WHERE `id` = '".$tovar_id."'");
                        $result_kat = mysql_query($query_kat) or die(mysql_error());
                           while($row_kat = mysql_fetch_assoc($result_kat)) { $arr_kat[] = $row_kat; }
                foreach ($arr_kat as $key => $value) {
                             $articul = $value['articul'];
                             $name = $value['name'];                
                    }
            // Затем склеиваю строку , чтобы одним запросом все записать в базу... 
            $insert .= "('', '".$_SESSION['user_id']."', '".$tovar_id."', '".$articul."', '".$name."', '".$tovar_kol."')";
        }                
    }

Пытаюсь записать в базу
Код

$insert = str_replace(")(", ") , (", $insert); 

$query_tovar = "INSERT INTO `tmp_zakaz` ( `id` , `id_user` , `id_tovar`, `articul`, `name`, `kol` ) VALUES '".$insert."'";
$result = mysql_query($query_tovar) or die(mysql_error());



Но не пишет, говорит что "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1', '1', '010140', 'Алмазные диск 115 "Sigment" (60115)', '4'')' at line 1"
PM MAIL   Вверх
Akina
Дата 17.10.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Выведите полный текст полученного запроса (например в файл) и проанализируйте его 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
hetfield
Дата 17.10.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 26.11.2007

Репутация: нет
Всего: нет



Вот он какой должен получится
Код

INSERT INTO `tmp_zakaz` ( `id` , `id_user` , `id_tovar`, `articul`, `name`, `kol` ) VALUES ('', '1', '1', '010140', 'Алмазные диск 115 "Sigment" (60115)', '2') , ('', '1', '3', '010142', 'Алмазные диск 180 "Sigment" (60180)', '4')


Анализтрую уже долго ))) не пойму в чем дело
PM MAIL   Вверх
bars80080
Дата 17.10.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



ну во-первых, бардак с кавычками

во-вторых, все переменные надо обрамлять соотвтетсвующей функцией: 
Код

$insert .= "('', '".mysql_real_escape_string($_SESSION['user_id'])."', '".mysql_real_escape_string($tovar_id)."', '".mysql_real_escape_string($articul)."', '".mysql_real_escape_string($name)."', '".mysql_real_escape_string($tovar_kol)."')";


в-третьих, непонятно зачем здесь доп.кавычки VALUES '".$insert."'";

ну и конечно, если бы сделал var_dump($query_tovar); сразу бы увидел в чём проблема

Добавлено через 36 секунд
Цитата(hetfield @  17.10.2008,  12:22 Найти цитируемый пост)
Вот он какой должен получится

при чём здесь должен? смотри какой получился
PM MAIL WWW   Вверх
hetfield
Дата 17.10.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 26.11.2007

Репутация: нет
Всего: нет



Цитата

в-третьих, непонятно зачем здесь доп.кавычки VALUES '".$insert."'";

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

Спасибо за помощь...  smile 
PM MAIL   Вверх
bars80080
Дата 17.10.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



ты их уже ставишь - вокруг самих данных, а не вокруг скобок блока данных
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.