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

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

1. pava77 - 28 Марта, 2013 - 17:36:00 - перейти к сообщению
Есть запрос на обновление заголовка, юзер пишет изменение в форме то чно ему нужно и нажимает оотправить, вот запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "UPDATE obyavi SET title='$_POST[title]' ";
  3.  

при таком запросе меняет все title в таблице, а мне нужно что бы меняло в конкретном id и customer
PHP:
скопировать код в буфер обмена
  1.  
  2.  "UPDATE obyavi SET title='$_POST[title]' WHERE id='$_POST[id]' and customer='$_POST[customer]";
  3.  
ето не помагает
2. caballero - 28 Марта, 2013 - 17:41:21 - перейти к сообщению
значит условие не выполняется
и пиши коректно с массивами

"UPDATE obyavi SET title='{$_POST["title"]}' "
или
"UPDATE obyavi SET title='". $_POST["title"] ."'"
3. pava77 - 28 Марта, 2013 - 17:50:27 - перейти к сообщению
caballero пишет:
значит условие не выполняется
и пиши коректно с массивами

"UPDATE obyavi SET title='{$_POST["title"]}' "
или
"UPDATE obyavi SET title='". $_POST["title"] ."'"

PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "UPDATE obyavi SET title='".$_POST['title']."' WHERE id='".$_POST['id']."' and customer='".$_POST['customer']."'";
  3.  
не работает, что делать?
4. caballero - 28 Марта, 2013 - 17:53:27 - перейти к сообщению
проверить что условие выполняется
что совпадают id и customer
осмотри что в Бд посмотри что прихолдит в POST

распечатай echo $sql сам запрос и выполни его отедльно в phpmyadmin или чем тыт там БД смотришь
5. pava77 - 28 Марта, 2013 - 18:14:50 - перейти к сообщению
caballero пишет:
проверить что условие выполняется
что совпадают id и customer
осмотри что в Бд посмотри что прихолдит в POST

распечатай echo $sql сам запрос и выполни его отедльно в phpmyadmin или чем тыт там БД смотришь

ага, вижу не передаеться id, его можно передать в форме type=hidden? или как лучше?
(Добавление)
Помогите, как id передать!
6. kolyan9898 - 28 Марта, 2013 - 19:42:44 - перейти к сообщению
может $_POST['id'] пустой??
(Добавление)
как вы его отправляете
7. pava77 - 28 Марта, 2013 - 19:46:32 - перейти к сообщению
вот именно что никак, как его передать? он пустой, я знаю
8. esterio - 28 Марта, 2013 - 19:55:56 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1. <form action="some_url.php" method="post">
9. pava77 - 28 Марта, 2013 - 20:01:26 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="edit_obyava.php" method="post" enctype="multipart/form-data">
  3. <tr><td>Название:<br> <input type="text" name="title" value="<?PHP echo $row["title"] ?>" size="70"></td></tr><td><input type="submit" value="Сохранить изменения"></td></tr>
  4. <input type="text" name="id" value="<?PHP echo $row["id"] ?>">
  5. </form>
  6.  

обработчик
PHP:
скопировать код в буфер обмена
  1.  
  2. $id = (int)$_POST['id'];
  3. $title = addslashes(trim ($_POST["title"]));
  4. $sql = "UPDATE obyavi SET title='".$_POST['title']."' WHERE id='$id'";
  5.         mysql_query($sql) or die (mysql_error());
  6.         echo $sql;
  7.  
ето не работает
10. DelphinPRO - 28 Марта, 2013 - 20:06:45 - перейти к сообщению
pava77 пишет:
ето не работает

в данном случае id должен передаваться. только лучше использовать поле type=hidden

не надо так делать $title = addslashes(trim ($_POST["title"]));
для экранирования существует функция mysql_real_escape_string
11. pava77 - 28 Марта, 2013 - 20:21:07 - перейти к сообщению
id не передаеться, я его echo, а там пишет
PHP:
скопировать код в буфер обмена
  1. UPDATE obyavi SET title='Продам ст' WHERE id=''

не пойму что делать
12. DelphinPRO - 28 Марта, 2013 - 20:27:52 - перейти к сообщению
вы откройте форму в браузере. нажмите Ctrl+U и посмотрите исходный код страницы. Там есть этот id?
13. pava77 - 28 Марта, 2013 - 20:42:54 - перейти к сообщению
да, конечно есть, он в обработчике теряеться
<input type="hidden" name="id" value="43"> вот такое пишет в исходном коде
14. DelphinPRO - 29 Марта, 2013 - 07:25:03 - перейти к сообщению
этот инпут внутри форм находится?
В самом начале файла обработчика распечатайте var_dump($_POST), там есть id ?
15. Object - 29 Марта, 2013 - 08:41:31 - перейти к сообщению
Вам же написали:
caballero пишет:
и пиши коректно с массивами

"UPDATE obyavi SET title='{$_POST["title"]}' "
или
"UPDATE obyavi SET title='". $_POST["title"] ."'"


А Вы в том месте где Вам указали исправили, а в другом зачем, да?
У Вас написано так:
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE obyavi SET title='".$_POST['title']."' WHERE id='$id'";


А теперь еще раз внимательно смотрим как собирается строка с подстановкой переменных

или так:
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE obyavi SET title='{$_POST['title']}' WHERE id={$id}";

или так:
PHP:
скопировать код в буфер обмена
  1. $sql = "UPDATE obyavi SET title='".$_POST['title']."' WHERE id=".$id;

 

Powered by ExBB FM 1.0 RC1