Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Косяк с запросом в базу.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Worm
Отправлено: 28 Февраля, 2012 - 13:05:23
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?
  2. include('config/mysql.php');
  3. header('Content-Type: text/html;charset=UTF-8');
  4.  
  5. $day = Date(j);
  6. $month = Date(m);
  7. $year = Date(Y);
  8. $today = $day .".". $month .".". $year;
  9.  
  10.  
  11.  
  12.  
  13. for ($i = 1; $i <= 34; $i++)
  14. {
  15.  
  16. @$element15 = $_POST['element_15_'.$i];
  17.  
  18.         if (isset($element15))
  19.         {
  20.                
  21.         $result = mysql_query("SELECT usluga FROM zakaz_uslugi WHERE id=$i",$db);
  22.         $myrow = mysql_fetch_array($result);
  23.         @$uslugi .= $myrow['0'].", ";
  24.         }
  25. }
  26.  
  27. $element15 = substr($uslugi,0,strlen($uslugi)-2);
  28.  
  29. for ($n = 0; $n <= 20; $n++)
  30.         {
  31.  
  32.         $element_ . $n = mysql_real_escape_string($_POST['element_'.$n]);
  33.  
  34.         }
  35.  
  36.  
  37.  
  38. $add = mysql_query("INSERT INTO `zakaz` (zakaz_name, birthday, snpas, npas, issued, wissued, adress, dov, zakazdate, street, num, flat, key, phone, uslugi, tehgo, recive, cost, username, todaydate) VALUES ('$element_1', '$element_2', '$element_3', '$element_4', '$element_5', '$element_6', '$element_7', '$element_8', '$element_9', '$element_10', '$element_11', '$element_12', '$element_13', '$element_14', '$element_15', '$element_16', '$element_17', '$element_18', '$element_19', '$today')");
  39.  
  40. echo mysql_errno($db) . ": " . mysql_error($db) . "\n";
  41.  
  42.  
  43.  
  44. ?>


При попытке добавить инфу в базу возникает ошибка:


Цитата:
1064: 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 'key, phone, uslugi, tehgo, recive, cost, username, todaydate) VALUES ('asdasdasd' at line 1


В базе 21 колонка, 1 - ID, авто-инкримент, в базу отправляю 20 колонок (без айди).

(Отредактировано автором: 28 Февраля, 2012 - 13:06:26)

 
 Top
garvey
Отправлено: 28 Февраля, 2012 - 13:15:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




key - зарезервированное имя MySQL, заключайте подобные вещи в `key` такие кавычки.
 
 Top
OrmaJever Модератор
Отправлено: 28 Февраля, 2012 - 13:18:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Worm, вы знаете значение "@"? Зачем вы его написали в 16 и 23 строках?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Worm
Отправлено: 28 Февраля, 2012 - 13:25:36
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




[quote=OrmaJever][/quote]
OrmaJever пишет:
Worm, вы знаете значение "@"? Зачем вы его написали в 16 и 23 строках?


апач криво настроен, если не поставить @ то будет весь экран в Notice: Undefined variable: element_ in blah-blah-blah..

Если подскажете иное решение, буду признателен.
 
 Top
Dezmont
Отправлено: 28 Февраля, 2012 - 14:08:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




К Notice можно попробовать и прислушаться. Он плохого не посоветует...Улыбка
 
 Top
Worm
Отправлено: 28 Февраля, 2012 - 14:17:17
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Dezmont пишет:
К Notice можно попробовать и прислушаться. Он плохого не посоветует...

вы предлагаете мне каждую переменную через define(); пропускать? Или есть еще способы кроме @ и define(); ?


garvey пишет:
key - зарезервированное имя MySQL, заключайте подобные вещи в `key` такие кавычки.

Спасибо, кстати Улыбка Помогли.

(Отредактировано автором: 28 Февраля, 2012 - 14:33:09)

 
 Top
DelphinPRO
Отправлено: 28 Февраля, 2012 - 14:44:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Worm пишет:
апач криво настроен, если не поставить @ то будет весь экран в Notice: Undefined variable: element_ in blah-blah-blah..

Если подскажете иное решение, буду признателен.


при чем здесь апач?
PHP прямым текстом говорит - "Переменная неопределена"
Чтобы избавится от нотисов, нужно либо проверять наличие переменной isset() перед ее использованием, либо обеспечить ее гарантированное наличие.

как костыльный вариант:

(Отредактировано автором: 28 Февраля, 2012 - 14:46:08)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Worm
Отправлено: 29 Февраля, 2012 - 06:22:35
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




DelphinPRO пишет:
...


Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB