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
Форумы портала PHP.SU :: Версия для печати :: И снова не работает INSERT
Форумы портала PHP.SU » » Вопросы новичков » И снова не работает INSERT

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

1. ov - 17 Января, 2017 - 15:49:01 - перейти к сообщению
Уважаемые гуру, за 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 - то первый и второй, работают а третий нет.!!!

Не понял и опечален Не понял и опечален
2. 3d_killer - 17 Января, 2017 - 16:51:08 - перейти к сообщению
во первых ID на странице должен быть уникальным
(Добавление)
а во вторых не $_REQUEST а $_POST
(Добавление)
и скобочки фигурные убери {$val1}
3. OrmaJever - 17 Января, 2017 - 17:21:46 - перейти к сообщению
2017 год, люди используют mysql_query Хм
Для начала это причина всех ваших проблем
4. ov - 17 Января, 2017 - 18:06:53 - перейти к сообщению
OrmaJever пишет:
люди используют mysql_query

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


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

Повторюсь переменная val1 передается и записывается в БД, переменную val2 вижу и с помощью echo $POST и echo $_REQUEST( думаю в этом случае разницы нет какой массив будет) и в phpinfp.
ID тоже ведь в этом случае не имеет значение - в INSERTзначение переменной поступает в массив по name.
5. Строитель - 17 Января, 2017 - 19:46:53 - перейти к сообщению
Я не уверен, что проблема именно в этом, но всё же измените синтаксис sql-запроса на этот
PHP:
скопировать код в буфер обмена
  1. $insert_sql1 = "INSERT INTO `club` (`answer`) VALUES ('". $val1 ."')"; // И т.д.

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

А в обработчике нет никаких языковых конструкций, прерывающих выполнение скрипта? (например: exit; die; break; return;) Может быть есть смысл опубликовать ваш код целиком?
6. Sail - 18 Января, 2017 - 08:08:40 - перейти к сообщению
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. }

(Добавление)
Для каждого запроса на вставку помогут узнать, почему не "записываются в базу..."
7. ov - 18 Января, 2017 - 11:46:17 - перейти к сообщению
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;) Может быть есть смысл опубликовать ваш код целиком?


не помогло Недовольство, огорчение.
Остановок скрипта нет.
8. Sail - 18 Января, 2017 - 13:22:09 - перейти к сообщению
ov пишет:
Ощибок нет, int(1)int(тот id который занимает строка) а данных нет

Неужели транзакции используете?! Тогда их завершать надо...
Ну и для проверки добавьте в "успешной" ветке проверки выборку из таблички по полученному Id вставленной записи (если, конечно, это автоинкрементное поле суррогатного ключа) и проверку на количество полученных в результате запроса строк...
(Добавление)
А может место на диске с базой кончилось?
9. Fart - 18 Января, 2017 - 15:44:39 - перейти к сообщению
Тс, покажите кусок СУБД куда должны быть произведены действия для записи
10. ov - 18 Января, 2017 - 16:29:49 - перейти к сообщению
Fart пишет:
Тс, покажите кусок СУБД куда должны быть произведены действия для записи

Вы имеете ввиду скрин phpMA сл структрурой и записями?
11. Fart - 18 Января, 2017 - 17:50:26 - перейти к сообщению
Можно просто словами сколько столбцов в указанных таблицах. Хотелось бы исключить вариант ошибки кода и базы
(Добавление)
и уточните: тип данных ячейки, длину ячейки, длину переменных val1 / val2
12. ov - 19 Января, 2017 - 17:38:56 - перейти к сообщению
Fart пишет:
Можно просто словами сколько столбцов в указанных таблицах. Хотелось бы исключить вариант ошибки кода и базы
(Добавление)
и уточните: тип данных ячейки, длину ячейки, длину переменных val1 / val2


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

 

Powered by ExBB FM 1.0 RC1