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 :: Версия для печати :: Помогите найти ошибку (2)...
Форумы портала PHP.SU » » Вопросы новичков » Помогите найти ошибку (2)...

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

1. nikola_12 - 10 Августа, 2012 - 20:04:21 - перейти к сообщению
Привет всем! Делаю редактирование информации через админку по урокам Попова Хм ...

Проблема в том, что информация в БД не обновляется...

Состоит из 2-с файлов:

файл edit_production.php
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. if (!isset($id))
  4.  
  5. {
  6. $result = mysql_query("SELECT title,id FROM data");      
  7. $myrow = mysql_fetch_array($result);
  8.  
  9. do
  10. {
  11. printf ("<p><a href='edit_production.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);
  12. }
  13.  
  14. while ($myrow = mysql_fetch_array($result));
  15.  
  16. }
  17.  
  18. else
  19.  
  20. {
  21.  
  22. $result = mysql_query("SELECT * FROM data WHERE id=$id");      
  23. $myrow = mysql_fetch_array($result);
  24.  
  25. $result2 = mysql_query("SELECT id,title FROM categories");      
  26. $myrow2 = mysql_fetch_array($result2);
  27.  
  28. $count = mysql_num_rows($result2);
  29.  
  30. echo "<h3 align='center'>Редактирование заметки</h3>";
  31.  
  32. echo "<form name='form1' method='post' action='update_production.php'>
  33. <p>Выберите категорию для заметки<br><select name='cat' size='$count'>";
  34.  
  35. do
  36. {
  37.  
  38. if ($myrow['cat'] == $myrow2['id'])
  39. {
  40. printf ("<option value='%s' selected>%s</option>",$myrow2["id"],$myrow2["title"]);
  41. }
  42.  
  43. else
  44. {
  45. printf ("<option value='%s'>%s</option>",$myrow2["id"],$myrow2["title"]);
  46. }
  47.  
  48. }
  49. while ($myrow2 = mysql_fetch_array($result2));
  50.  
  51. echo "</select></p>";
  52. print <<<HERE
  53.  
  54.          <p>
  55.            <label>Введите краткое название<br>
  56.              <input value="$myrow[title]" type="text" name="title" id="title">
  57.              </label>
  58.          </p>
  59.          <p>
  60.            <label>Введите полное название<br>
  61.            <input value="$myrow[full_description]" type="text" name="full_description" id="full_description">
  62.            </label>
  63.          </p>
  64.          <p>                                      
  65.         <p>
  66.            <label>Миниатюра 1:<br>
  67.            <p><input type="file" name="big_img" id="big_img"></p>
  68.            </label>
  69.          </p>
  70.                                                  <p>
  71.            <label>Миниатюра 2:<br>
  72.            <p><input type="file" name="big_img_2" id="big_img_2"></p>
  73.            </label>
  74.          </p>
  75.          <p>
  76.            <label>Миниатюра 3:<br>
  77.            <p><input type="file" name="big_img_3" id="big_img_3"></p>
  78.            </label>
  79.          </p>
  80.  <input name="id" type="hidden" value="$myrow[id]">
  81.          <p>
  82.            <label>
  83.            <input type="submit" name="submit" id="submit" value="Сохранить изменения">
  84.            </label>
  85.          </p>
  86.        </form>
  87. HERE;
  88. }
  89. ?>


файл update_production.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include ("lock.php");
  3. include ("blocks/bd.php");
  4. if (isset($_POST['title']))      
  5. {
  6. $title = $_POST['title'];
  7.  
  8. if ($title == '')
  9. {
  10. unset($title);
  11. }  
  12.  
  13. }
  14.  
  15. /* Если существует в глобальном массиве $_POST['title'] опр. ячейка, то мы создаем простую переменную из неё. Если переменная пустая, то уничтожаем переменную.   */
  16. if (isset($_POST['full_description']))      {$full_description = $_POST['full_description']; if ($full_description == '') {unset($full_description);}}
  17. if (isset($_POST['big_img']))      {$big_img = $_POST['big_img']; if ($big_img == '') {unset($big_img);}}
  18. if (isset($_POST['big_img_2']))      {$big_img_2 = $_POST['big_img_2']; if ($big_img_2 == '') {unset($big_img_2);}}
  19. if (isset($_POST['big_img_3']))      {$big_img_3 = $_POST['big_img_3']; if ($big_img_3 == '') {unset($big_img_3);}}
  20.  
  21. ?>
  22. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  23. <html>
  24. <head>
  25. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  26. <title>Обработчик</title>
  27. <link href="style.css" rel="stylesheet" type="text/css">
  28. </head>
  29. <body>
  30. <table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
  31. <!--Подключаем шапку сайта-->
  32. <? include("blocks/header.php");   ?>
  33.   <tr>
  34.     <td><table width="690" border="0" cellspacing="0" cellpadding="0">
  35.       <tr>
  36. <!--Подключаем левый блок сайта-->
  37. <? include ("blocks/lefttd.php");  ?>      
  38.         <td valign="top">
  39.      
  40.          <?PHP
  41. if (isset($title))
  42. {
  43. /* Здесь пишем что можно заносить информацию в базу */
  44. $result = mysql_query ("UPDATE data SET title='$title', full_description='$full_description', big_img='$big_img', big_img_2='$big_img_2', big_img_3='$big_img_3' WHERE id='$id'");
  45.  
  46. if ($result == 'true') {echo "<p>Продукция успешно обновлена!</p>";}
  47. else {echo "<p>Продукция не обновлена!</p>";}
  48.  
  49.  
  50. }                
  51. else
  52.  
  53. {
  54. echo "<p>Вы ввели не всю информацию, поэтому продукция в базе не может быть обновлена.</p>";
  55. }
  56.                  
  57.                  
  58.                  
  59.                  ?>
2. OrmaJever - 10 Августа, 2012 - 20:07:13 - перейти к сообщению
учитесь искать ошибки сами http://phpfaq[dot]ru/debug
3. armancho7777777 - 10 Августа, 2012 - 20:08:01 - перейти к сообщению
nikola_12 пишет:
по урокам Попова

Хватит офтопить В топку урода...
4. nikola_12 - 10 Августа, 2012 - 20:22:57 - перейти к сообщению
как я понял, помочь ни кто не может... Растерялся
5. armancho7777777 - 10 Августа, 2012 - 20:28:49 - перейти к сообщению
nikola_12, переучивайтесь.
То, чему научил Вас Попов, мягко говоря, никуда не годится.
Если решили учить PHP по видео-урокам, то вот отличный курс:
_http://play-mix.ru/php_уровень_1-4/
6. DiosPA - 10 Августа, 2012 - 21:29:18 - перейти к сообщению
armancho7777777
Поддерживаю Улыбка
7. nikola_12 - 10 Августа, 2012 - 22:25:38 - перейти к сообщению
подставил


Выдаёт ошибки:
Notice: Undefined variable: big_img in Z:\home\virsavia-plus.ru\www\admin\update_production.php on line 46

Notice: Undefined variable: big_img_2 in Z:\home\virsavia-plus.ru\www\admin\update_production.php on line 46

Notice: Undefined variable: big_img_3 in Z:\home\virsavia-plus.ru\www\admin\update_production.php on line 46

Notice: Undefined variable: id in Z:\home\virsavia-plus.ru\www\admin\update_production.php on line 46

на 46 линии:

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query ("UPDATE data SET title='$title', full_description='$full_description', big_img='$big_img', big_img_2='$big_img_2', big_img_3='$big_img_3' WHERE id='$id'");
8. DelphinPRO - 10 Августа, 2012 - 23:33:39 - перейти к сообщению
не определены указаные переменные.
Смотрите по коду выше, почему они у вас не определены.

pS
вероятно потому, что их в ПОСТ нет таких ключей..
(Добавление)
да,если вы делаете так
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['big_img'])) {
  2.     $big_img = $_POST['big_img'];
  3.     if ($big_img == '') {
  4.         unset($big_img);
  5.     }
  6. }

т.е. удаляете переменную, если она пуста, то и в последующем коде проверяйте ее наличие перед использованием.

PS и форматируйте код, выкладывая его на форум. мало кому хочется ломать глаза об эту кашу.

 

Powered by ExBB FM 1.0 RC1