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 :: И снова не работает INSERT

 PHP.SU

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


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

> Без описания
ov
Отправлено: 17 Января, 2017 - 15:49:01
Post Id


Новичок


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


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




Уважаемые гуру, за 3 дня уже сломал голову. Простейший код отправки формы и не идет

html
CODE (html):
скопировать код в буфер обмена
  1. <form  action="send.php" method="post">
  2. <input type="text" value=""  name="val1"  list="team_list">
  3.      
  4.                                                 <datalist id="team_list">
  5.                                                 <option>Бавария</option>
  6.                                                 <option>Бенфика</option>
  7.                                                 <option>Боруссия</option>
  8.                                                 <option>Брюгге</option>
  9.                                                 </datalist>
  10. <input type="text" value=""  name="val2"  list="team_list">
  11.      
  12.                                                 <datalist id="team_list">
  13.                                                 <option>Бавария</option>
  14.                                                 <option>Бенфика</option>
  15.                                                 <option>Боруссия</option>
  16.                                                 <option>Брюгге</option>
  17.                                                 <!-- и т.д. -->
  18.                                                 </datalist>
  19. </form>
  20.  
  21.  

и обработчик
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. require 'connect.php';
  4. mysql_query("SET NAMES 'utf8'");
  5.  
  6.  
  7. $val1= trim($_REQUEST['val1']);
  8. $val2= trim($_REQUEST['val2']);
  9.  $insert_sql1 = "INSERT INTO club(`answer` ) VALUES ('{$val1}')";
  10.  mysql_query($insert_sql1);
  11.  $insert_sql2 = "INSERT INTO sale(`answer` ) VALUES ('{$val2}')";
  12.  mysql_query($insert_sql2);
  13.  
  14. echo mysql_error();
  15. phpinfo(32);
  16. ?>


код формы и обработчика сократил - там еще три поля и соответсвенно 3 переменных. Переменные с индексом 2 не записываются в базу. При этом в $POST они есть и phpinfo их тоже видит.

Но еще прикол в том, что если добавить еще один инпут с индексом 3 - то первый и второй, работают а третий нет.!!!

Не понял и опечален Не понял и опечален

(Отредактировано автором: 17 Января, 2017 - 16:07:46)

 
 Top
3d_killer
Отправлено: 17 Января, 2017 - 16:51:08
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




во первых ID на странице должен быть уникальным
(Добавление)
а во вторых не $_REQUEST а $_POST
(Добавление)
и скобочки фигурные убери {$val1}
 
My status
 Top
OrmaJever Модератор
Отправлено: 17 Января, 2017 - 17:21:46
Post Id



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


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


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




2017 год, люди используют mysql_query Хм
Для начала это причина всех ваших проблем


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
ov
Отправлено: 17 Января, 2017 - 18:06:53
Post Id


Новичок


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


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




OrmaJever пишет:
люди используют mysql_query

Это я совсем не понял. А в коде что-то иное? Или что вы имеете ввиду?
(Добавление)
3d_killer пишет:
во первых ID на странице должен быть уникальным
(Добавление)
а во вторых $_REQUEST не а $_POST
(Добавление)
и скобочки фигурные убери {$val1}


Нет, не работает.

Повторюсь переменная val1 передается и записывается в БД, переменную val2 вижу и с помощью echo $POST и echo $_REQUEST( думаю в этом случае разницы нет какой массив будет) и в phpinfp.
ID тоже ведь в этом случае не имеет значение - в INSERTзначение переменной поступает в массив по name.

(Отредактировано автором: 17 Января, 2017 - 18:21:53)

 
 Top
Строитель Модератор
Отправлено: 17 Января, 2017 - 19:46:53
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Я не уверен, что проблема именно в этом, но всё же измените синтаксис sql-запроса на этот
PHP:
скопировать код в буфер обмена
  1. $insert_sql1 = "INSERT INTO `club` (`answer`) VALUES ('". $val1 ."')"; // И т.д.

ov пишет:
Но еще прикол в том, что если добавить еще один инпут с индексом 3 - то первый и второй, работают а третий нет.!!!

А в обработчике нет никаких языковых конструкций, прерывающих выполнение скрипта? (например: exit; die; break; return;) Может быть есть смысл опубликовать ваш код целиком?
 
 Top
Sail
Отправлено: 18 Января, 2017 - 08:08:40
Post Id



Участник


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


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




ov, для начала:
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query($sQuery);
  2. if($result === FALSE) {
  3.   $str = "<br>{$sQuery}<br>".mysql_errno().': '.mysql_error();
  4.   exit($str);
  5. } else {
  6.   $newId = mysql_insert_id();
  7.   echo "<br>{$sQuery}<br>";
  8.   var_dump($n, $newId);
  9. }

(Добавление)
Для каждого запроса на вставку помогут узнать, почему не "записываются в базу..."
 
 Top
ov
Отправлено: 18 Января, 2017 - 11:46:17
Post Id


Новичок


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


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




Sail пишет:
$result = mysql_query($sQuery);
if($result === FALSE) {
  $str = "<br>{$sQuery}<br>".mysql_errno().': '.mysql_error();
  exit($str);
} else {
  $n = mysql_affected_rows();
  $newId = mysql_insert_id();
  echo "<br>{$sQuery}<br>";
  var_dump($n, $newId);
}

(Добавление)
Для каждого запроса на вставку помогут узнать, почему не "записываются в базу..."


Ощибок нет, int(1)int(тот id который занимает строка) а данных нет
(Добавление)
(Добавление)
Строитель пишет:
$insert_sql1 = "INSERT INTO `club` (`answer`) VALUES ('". $val1 ."')"; // И т.д.

ov пишет:
Но еще прикол в том, что если добавить еще один инпут с индексом 3 - то первый и второй, работают а третий нет.!!!

А в обработчике нет никаких языковых конструкций, прерывающих выполнение скрипта? (например: exit; die; break; return;) Может быть есть смысл опубликовать ваш код целиком?


не помогло Недовольство, огорчение.
Остановок скрипта нет.

(Отредактировано автором: 18 Января, 2017 - 11:48:43)

 
 Top
Sail
Отправлено: 18 Января, 2017 - 13:22:09
Post Id



Участник


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


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




ov пишет:
Ощибок нет, int(1)int(тот id который занимает строка) а данных нет

Неужели транзакции используете?! Тогда их завершать надо...
Ну и для проверки добавьте в "успешной" ветке проверки выборку из таблички по полученному Id вставленной записи (если, конечно, это автоинкрементное поле суррогатного ключа) и проверку на количество полученных в результате запроса строк...
(Добавление)
А может место на диске с базой кончилось?
 
 Top
Fart
Отправлено: 18 Января, 2017 - 15:44:39
Post Id



Посетитель


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


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




Тс, покажите кусок СУБД куда должны быть произведены действия для записи
 
 Top
ov
Отправлено: 18 Января, 2017 - 16:29:49
Post Id


Новичок


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


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




Fart пишет:
Тс, покажите кусок СУБД куда должны быть произведены действия для записи

Вы имеете ввиду скрин phpMA сл структрурой и записями?

(Отредактировано автором: 18 Января, 2017 - 16:30:14)

 
 Top
Fart
Отправлено: 18 Января, 2017 - 17:50:26
Post Id



Посетитель


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


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




Можно просто словами сколько столбцов в указанных таблицах. Хотелось бы исключить вариант ошибки кода и базы
(Добавление)
и уточните: тип данных ячейки, длину ячейки, длину переменных val1 / val2
 
 Top
ov
Отправлено: 19 Января, 2017 - 17:38:56
Post Id


Новичок


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


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




Fart пишет:
Можно просто словами сколько столбцов в указанных таблицах. Хотелось бы исключить вариант ошибки кода и базы
(Добавление)
и уточните: тип данных ячейки, длину ячейки, длину переменных val1 / val2


Стодбцов по 18 шт, ячейка text длина 100, длина переременных 12 (макс)
(Добавление)
Благодарю всех за помощь. Вопрос решен. Заменил значение $val1 в INSERT на $_POST['val1'] все пишется!

(Отредактировано автором: 19 Января, 2017 - 17:49:01)

 
 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