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 :: Помогите удалить запись...
Покинул форум
Сообщений всего: 14
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Помогите удалить запись.
Ошибка в этой строке
mysql_query("DELETE FROM books WHERE number='$_POST["nn_del"]'");
следующего рода Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in z:\home\proba...
Причем если $_POST["nn_del"]' заменяю на конкретное число, например 6, то код работает.
number - имя поля.
Мелкий
Отправлено: 25 Февраля, 2010 - 22:36:15
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Всё верно, для подстановки ассочиативного массива включённого в двойные кавычки, ключ массива в кавычки обрамлять не допускается. Но лучше всё-таки так:
mysql_query("DELETE FROM books WHERE number='".$_POST["nn_del"]."'");
Покинул форум
Сообщений всего: 14
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
1) Вариант 1 работает. Спасибо.
2) Вариант 2 работает. Спасибо.
3) Работает вопреки логики еще вариант 3
$query = "DELETE FROM books WHERE number=".$_POST['nn_del'].";";
mysql_query($query); ???
Viper
Отправлено: 26 Февраля, 2010 - 07:51:05
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
zarj пишет:
Работает вопреки логики еще вариант 3
потому что имя элемента массива берется в одинарные кавычки. поэтому и работает
$query="INSERT INTO books (number,book,avtor) VALUES(".$_POST('nn').",'ГарриПотер' ,'Джоан Роулинг')";
Значение одного поля поступает из формы -это значение читается и отобраэжается , а два других задаются в лоб ('ГарриПотер', 'Джоан Роулинг' ) - эти значение не отображаются.
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
zarj
дай больше информации а то мы из пальца по кусочкам придумываем, что там.
А то мы как тот хирург через анал гланды оперирует (Добавление)
играем в да нет
Мелкий
Отправлено: 28 Февраля, 2010 - 23:38:37
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
zarj пишет:
Не работает следующий запрос
zarj пишет:
Ничего. Код работает, но результат не верный.
Так он работает или работает не верно? Абсолютно разные вещи, как и дебаг к ним.
брр, а с какого перепугу вообще $_POST('nn')? К массиву через [] обращаются, а () - это функция.
biperch пишет:
ребята number тип int когда его присваивают кавычки не ставят.
А кто с динамической типизацией будет гарантировать, что придёт именно int?
----- PostgreSQL DBA
biperch
Отправлено: 01 Марта, 2010 - 08:35:32
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
Мелкий пишет:
А кто с динамической типизацией будет гарантировать, что придёт именно int?
зрз приводи переменные к указаному типу, (int)$s -- если тут будет стринг он его переведет в число, а если строка не похожа на число то просто возвращает 0.
выше в коде числовому поле(инт) бд присваивают строку, это нормально?
Viper
Отправлено: 01 Марта, 2010 - 08:48:20
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
нет, не нормально. нормально вообще обрабатывать переменные перед вставкой в запрос.
int()$var в запросе это нормально.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
biperch пишет:
А кто с динамической типизацией будет гарантировать, что придёт именно int?
Сделайте gettype/settype и получите именно то что вам нужно
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.