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

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

1. shahin - 23 Августа, 2014 - 21:20:08 - перейти к сообщению
Не получается добавить в базу значение
CODE (html):
скопировать код в буфер обмена
  1. <select name="gender">
  2. <option value="0">Мужской</option>
  3. <option value="1">Женский</option>
  4. </select>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $gender = $_POST['gender'];
  3. if ($gender == '0' && $gender == '1') {$sql = ("INSERT INTO users(sex) VALUES = '".$gender."'");
  4. $result = mysql_query($sql)or die(mysql_error());}
  5. else $error_sex = 'Ошибка! Вы не указали ваш пол!';
  6. ?>
2. avtor.fox - 23 Августа, 2014 - 21:27:36 - перейти к сообщению
сначала выполните запрос для теста, потом смотрите, что у Вас не так

CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO users(sex) VALUES = 1


. (Отобразить)
3. shahin - 23 Августа, 2014 - 21:32:46 - перейти к сообщению
avtor.fox пишет:
и я впервые встречаю такой синтаксис

какой?
(Добавление)
Если не правельно, напишите правельный код пожалуйста
4. IGORtrue - 23 Августа, 2014 - 21:39:50 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. "INSERT INTO users (sex) VALUES ('".$gender."')"

Попробуйте
5. shahin - 23 Августа, 2014 - 21:56:25 - перейти к сообщению
IGORtrue Не сработало
6. IGORtrue - 23 Августа, 2014 - 22:11:12 - перейти к сообщению
shahin пишет:
IGORtrue Не сработало


PHP:
скопировать код в буфер обмена
  1. if ($gender == '0' && $gender == '1')

$gender не будет равен и тому и тому..нужно так:
PHP:
скопировать код в буфер обмена
  1. if ($gender == '0' || $gender == '1')
7. shahin - 23 Августа, 2014 - 22:21:00 - перейти к сообщению
IGORtrue 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')' at line 1
(Добавление)
У вас ошибка в вашем синтаксисе SQL; проверить документацию по используемой версии MySQL на предмет корректного синтаксиса около '= («1»)' в строке 1
но почему?
8. IGORtrue - 23 Августа, 2014 - 22:23:36 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $gender = $_POST['gender'];
  4. if ($gender == '0' || $gender == '1')
  5. {
  6.         $sql = ("INSERT INTO users (`sex`) VALUES ('".$gender."')");
  7.         $result = mysql_query($sql)or die(mysql_error());
  8. }
  9. else echo 'Ошибка! Вы не указали ваш пол!';
  10.  
  11. ?>
  12.  

http://ru.wikipedia.org/wiki/Insert_(SQL)
Ещё $_POST['gender'] нужно проверить на существование и проверить на всякую ересь неверующую..
9. shahin - 23 Августа, 2014 - 22:33:44 - перейти к сообщению
IGORtrue Спасибо работает но значение всегда 1
10. IGORtrue - 23 Августа, 2014 - 22:37:26 - перейти к сообщению
shahin пишет:
IGORtrue Спасибо работает но значение всегда 1

А может у вас в таблице users, sex имеет тип int?
Я вот не помню как тогда будет работать, попробуйте так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $gender = $_POST['gender'];
  3. if ($gender == '0' || $gender == '1')
  4. {
  5.         $sql = ("INSERT INTO users (`sex`) VALUES (".$gender.")");
  6.         $result = mysql_query($sql)or die(mysql_error());
  7. }
  8. else echo 'Ошибка! Вы не указали ваш пол!';
  9.  
  10. ?>

Одинарные скобки убрал
11. shahin - 23 Августа, 2014 - 22:41:23 - перейти к сообщению
в таблице значение varchar
(Добавление)
У меня прямо на странице видно 1 с краю
(Добавление)
Видимо не идет выбор, а всегда 1
12. IGORtrue - 23 Августа, 2014 - 22:44:11 - перейти к сообщению
shahin пишет:
У меня прямо на странице видно 1 с краю

А чего это? В коде где написано показывать?
13. shahin - 23 Августа, 2014 - 22:46:45 - перейти к сообщению
тьфу забыл сказать что я не записываю теперь, а изменяю
PHP:
скопировать код в буфер обмена
  1. $gender = $_POST['gender'];
  2. if ($gender == '1' || $gender == '2')
  3. {
  4. $sql = ("UPDATE users SET `sex`=(".$gender.")");
  5. $result = mysql_query($sql)or die(mysql_error());
  6. }

теперь запись меняется у всех пользователей, а как сделать чтобы было только у меня
(Добавление)
IGORtrue пишет:
А чего это? В коде где написано показывать?

вот и я о томже думаю, оператора то не писал
14. IGORtrue - 23 Августа, 2014 - 22:52:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $gender = $_POST['gender'];
  3. if ($gender == '1' || $gender == '2')
  4. {
  5. $sql = ("UPDATE `users` SET `sex`='".$gender."' WHERE `id`= '".$user_id."'");
  6. $result = mysql_query($sql)or die(mysql_error());
  7. }
  8.  

У вас должен быть уникальный идентификатор пользователя, например id.
WHERE `id`= '".$user_id."' - это условие, что только этому id поменяется
И у вас в форме 0 и 1, а тут уже 1 и 2..
15. shahin - 23 Августа, 2014 - 22:54:26 - перейти к сообщению
IGORtrue да, сейчас буду писать. Я вам очень благодарен за помощь!

 

Powered by ExBB FM 1.0 RC1