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 :: UPDATE из SELECT

 PHP.SU

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


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

> Описание: Не вводит новые значения.
wisedarkness
Отправлено: 05 Февраля, 2013 - 23:04:23
Post Id


Новичок


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


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




Здравствуйте, я пытаюсь сделать нечто подобие страницы админа и хотел бы, что бы с этой страницы можно было управлять данными таблицы products - где находятся все продукты.
Я вывожу сначала всю инф из таблицы(с этим всё отлично), но никак не могу заменить эту информацию. Я пытался заменять значения в отдельной функции и вне WHILE. Щас решил это всё поместит в while, что бы удобней работать с Row. Подскажите пожалуйста, где я ошибся или, что может вообще делаю абсолютно неверно. Буду очень признателен и благодарен.
Вот код:
На самой странице *админа* я распечатываю функцию.(Думаю так безопасней будет).


Код функции:
PHP:
скопировать код в буфер обмена
  1.  
  2.   function tavars()
  3.  {
  4.     db_connect();
  5.     $query="SELECT * FROM products  ";
  6.     $result=mysql_query($query);
  7.     while($row = mysql_fetch_array($result))
  8. {
  9.     '<form action="index.php?view=items" method="POST" name="change" id="cart-form" ">';
  10. echo "Номер тавара: ".$row['id'],'<input type="submit" name="changeid" value="Изменить"><input type="text" name="id" value="">',"<br>";
  11. echo "Название тавара: ".$row['title'],'<input type="submit" name="changetitle" value="Изменить"><input type="text" name="title" value="">',"<br>";
  12. echo "Описание: ".$row['description'],'<input type="submit" name="changedescription" value="Изменить"><input type="text" name="description" value="">',"<br>";
  13. echo "Цена: ".$row['price'],'<input type="submit" name="changeprice" value="Изменить"><input type="text" name="price" value="">',"<br>";
  14. echo "Картинка: ".$row['image'],'<input type="submit" name="changeimage" value="Изменить"><input type="text" name="image" value="">',"<br>";
  15. echo "Категория тавара: ".$row['cat'],'<input type="submit" name="changecat" value="Изменить"><input type="text" name="cat" value="">',"<br>";
  16.      
  17.  
  18. echo '<a href="javascript:window.location.reload()">Обновить',"<br><hr></a>";    
  19.     '</form>';
  20.    
  21.  
  22.     $id =$_POST['id'];
  23.     $title =$_POST['title'];
  24.     $description =$_POST['description'];
  25.     $price =$_POST['price'];
  26.     $image =$_POST['image'];
  27.     $cat = $_POST['cat'];
  28.    
  29.     if(isset($_POST['changeid']))
  30.     {
  31.         $sql="UPDATE `shop`.`products` SET `id`='".$id."'WHERE `products`.`id` = '".$row['id']."'";
  32.         $res=mysql_query($sql)or die(mysql_error());
  33.         header ("Location: index.php?view=items");
  34.  
  35.      }
  36.      if(isset($_POST['changetitle']))
  37.     {
  38.         $sql="UPDATE `shop`.`products` SET `title`='".$title."'WHERE `products`.`id` = '".$row['id']."'";
  39.         $res=mysql_query($sql)or die(mysql_error());
  40.         header ("Location: index.php?view=items");
  41.        
  42.     }
  43.     if(isset($_POST['changedescription']))
  44.     {
  45.         $sql="UPDATE `shop`.`products` SET `description`='".$description."'WHERE `products`.`id` = '".$row['id']."'";
  46.         $res=mysql_query($sql)or die(mysql_error());
  47.         header ("Location: index.php?view=items");
  48.        
  49.     }
  50.     if(isset($_POST['changeprice']))
  51.     {
  52.         $sql="UPDATE `shop`.`products` SET `price`='".$price."'WHERE `products`.`id` = '".$row['id']."'";
  53.         $res=mysql_query($sql)or die(mysql_error());
  54.         header ("Location: index.php?view=items");
  55.        
  56.     }
  57.     if(isset($_POST['changeimage']))
  58.     {
  59.         $sql="UPDATE `shop`.`products` SET `image`='".$image."'WHERE `products`.`id` = '".$row['id']."'";
  60.         $res=mysql_query($sql)or die(mysql_error());
  61.         header ("Location: index.php?view=items");
  62.        
  63.     }
  64.     if(isset($_POST['changecat']))
  65.     {
  66.         $sql="UPDATE `shop`.`products` SET `cat`='".$cat."'WHERE `products`.`id` ='".$row['id']."'";
  67.         $res=mysql_query($sql)or die(mysql_error());
  68.         header ("Location: index.php?view=items");
  69.        
  70.     }
  71.    
  72.     }
  73.   }
  74.  

Прикреплено изображение (Нажмите для увеличения)
2.jpg

(Отредактировано автором: 06 Февраля, 2013 - 15:06:58)

 
 Top
Господин Соколов
Отправлено: 06 Февраля, 2013 - 08:16:50
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Окт. 2012  
Откуда: Екатеринбург


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




Во всех if должно быть сначала это
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql="UPDATE `shop`.`products` SET `cat`='".$cat."'WHERE `products`.`id` ='".$row['id']."'";
  3.  


а потом уже это


Запрос-то пустой получается!
 
 Top
wisedarkness
Отправлено: 06 Февраля, 2013 - 14:32:55
Post Id


Новичок


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


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




Господин Соколов Во всех if должно быть сначала это
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql="UPDATE `shop`.`products` SET `cat`='".$cat."'WHERE `products`.`id` ='".$row['id']."'";
  3.  



Спасибо за замечание- исправил, но основная ошибка не в этом видимо...

(Отредактировано автором: 06 Февраля, 2013 - 14:34:04)

 
 Top
esterio
Отправлено: 06 Февраля, 2013 - 15:46:28
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Совет очен прост - перепишите код сначала и поймете где ошыбка. Почему - он ужасен
1. название функции - странное и не несет смисловой нагрузки
2. PHP и HTML вместе
3. Простая SQL-иньекция и ваш сайт взломан
4. зачем коннект в функции
5. ну и еще много мелкых, но главное 0 безопасности.
 
 Top
wisedarkness
Отправлено: 06 Февраля, 2013 - 16:09:32
Post Id


Новичок


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


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




Мне главное, что бы она заработала, доработки потом можно будет сделать...Я ssl вообще думал подключать. Но пока вообще не возился с безопасностью.
 
 Top
esterio
Отправлено: 06 Февраля, 2013 - 16:36:44
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Причем здесь SSL???
У Вас весь код одна дыра.
Например
Цитата:
PHP:
скопировать код в буфер обмена
  1. $description =$_POST['description'];
  2. if(isset($_POST['changedescription']))
  3. {
  4.         $sql="UPDATE `shop`.`products` SET `description`='".$description."'WHERE `products`.`id` = '".$row['id']."'";
  5.         $res=mysql_query($sql)or die(mysql_error());
  6.         header ("Location: index.php?view=items");
  7. }

1. что будет если не пришол ПОСТОМ description - правильно NOTICE
2. $_POST['description'] = '# - всюду вставится то что я хочу и неважно какой там Ид
3. Если ошибка mysql_query - я как пользователь не хочу видеть die(mysql_error())
4. Используйте mysqli или PDO
 
 Top
wisedarkness
Отправлено: 06 Февраля, 2013 - 17:24:22
Post Id


Новичок


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


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




Заполнил каждое поле TEXT данными из таблицы, подставив в VALUE значение которые он уже выводит. Т.е все поля у меня в любом случае заполнены и изменил DIE. Значение всё ещё не обновляются в таблице...т.е что бы я не воодил в TEXT и нажимал SUBMIT ничего не происходит..
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "Номер товара: ".$row['id'],'<input type="submit" name="changeid" value="Изменить"><input type="text" name="id" value="'.$row['id'].'">',"<br>";
  3. ...
  4. $res=mysql_query($sql)or  mysql_error();
  5.  
 
 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