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 :: Warning: mysql_fetch_array() expects parameter 1 to be resource

 PHP.SU

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


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

> Описание: проблема mysql_fetch_array
Fraezar
Отправлено: 21 Января, 2012 - 07:05:37
Post Id


Новичок


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


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




Здравствуйте! Помогите, пожалуйста, решить проблему связанную с моей базой данных. Выдает вот такую ошибку:
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in X:\denwer\www\denwer\diplom\show.phtml on line 44

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include("connect.phtml");
  3.  
  4. if($type==1)
  5. {
  6. $strSQL1="SELECT name_publ FROM publishers WHERE
  7. id_publ=".$id_publ;
  8. $result=mysql_query($strSQL1)
  9. or die("Не могу выполнить запрос1!'");
  10. if($row=mysql_fetch_array($result))
  11. $title=$row["name_publ"];
  12. $strSQL1="SELECT id_book, image, author, name_book,
  13. books.id_publ, name_publ, pages, price, books.id_cat, name_cat
  14. FROM books, publishers, categories WHERE
  15. books.id_cat=categories.id_cat AND
  16. books.id_publ=publishers.id_publ AND books.id_publ=".$id_publ;
  17. }
  18. if($type==2)
  19. {
  20. $strSQL1="SELECT name_cat FROM categories WHERE
  21. id_cat=".$id_cat;
  22. $result=mysql_query($strSQL1)
  23. or die("Не могу выполнить запрос1!'");
  24. if($row=mysql_fetch_array($result))
  25. $title=$row["name_cat"];
  26. $strSQL1="SELECT id_book, image, author, name_book,
  27. books.id_publ, name_publ, pages, price, books.id_cat, name_cat
  28. FROM books, publishers, categories WHERE
  29. books.id_cat=categories.id_cat AND
  30. books.id_publ=publishers.id_publ AND books.id_cat=".$id_cat;
  31. }
  32. $result1==mysql_query($strSQL1)
  33. or die("Не могу выполнить запрос 2sdfsd!");
  34.  
  35. include("header.phtml");
  36. ?>
  37. <tr><td>
  38. <table border="1" width="100%" align="right" >
  39. <?
  40. while($row=mysql_fetch_array($result1))
  41. {?>


В последней строчке что-то не нравится. Буду благодарен за помощь!
Скачать файл: show.phtml
Скачан раз: 117


Отредактировано модератором: LIME, 02 Февраля, 2012 - 14:22:42
 
 Top
x_nick_x
Отправлено: 21 Января, 2012 - 08:56:02
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2011  


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





Это что в конце такое {?>
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <?
  2.  while($row=mysql_fetch_array($result1))
  3.  {
  4.  echo $row[что выводим];
  5. }
  6. ?>

Должно быть примерное так.
 
 Top
Fraezar
Отправлено: 21 Января, 2012 - 09:33:10
Post Id


Новичок


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


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




спасЫбо
 
 Top
Fraezar
Отправлено: 27 Января, 2012 - 05:47:26
Post Id


Новичок


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


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $id_publ=$HTTP_GET_VARS["id_publ"];
  3. $id_cat=$HTTP_GET_VARS["id_cat"];
  4. $type=$HTTP_GET_VARS["type"];
  5.  
  6. include("connect.phtml");
  7.  
  8. if($type==1)
  9. {
  10. $strSQL1="SELECT name_publ FROM publishers WHERE
  11. id_publ=".$id_publ;
  12. $result=mysql_query($strSQL1)
  13. or die("Не могу выполнить запрос1!'");
  14. if($row=mysql_fetch_array($result))
  15. $title=$row["name_publ"];
  16. $strSQL1="SELECT id_book, image, name_book,
  17. books.id_publ, name_publ, pages, price, books.id_cat,author, name_cat
  18. FROM books, publishers, categories WHERE
  19. books.id_cat=categories.id_cat AND
  20. books.id_publ=publishers.id_publ AND books.id_publ=".$id_publ;
  21. }
  22. if($type==2)
  23. {
  24. $strSQL1="SELECT name_cat FROM categories WHERE
  25. id_cat=".$id_cat;
  26. $result=mysql_query($strSQL1)
  27. or die("Не могу выполнить запрос1!'");
  28. if($row=mysql_fetch_array($result))
  29. $title=$row["name_cat"];
  30. $strSQL1="SELECT id_book, image, author, name_book,
  31. books.id_publ, name_publ, pages, price, books.id_cat, name_cat
  32. FROM books, publishers, categories WHERE
  33. books.id_cat=categories.id_cat AND
  34. books.id_publ=publishers.id_publ AND books.id_cat=".$id_cat;
  35. }
  36. $result1==mysql_query($strSQL1)
  37. or die("Не могу выполнить запрос 2sdfsd!");
  38.  
  39. include("header.phtml");
  40. ?>
  41. <tr><td>
  42. <table border="1" width="100%" align="right" >
  43. <?
  44. while($row=mysql_fetch_array($result1))
  45. {
  46. echo $row["$strSQL1"];
  47. }
  48. ?>
  49. <tr>
  50. <td align="center"><img src="images/<?print $row["image"]; ?>"
  51. alt="<?print $row["name_book"];?>" border="0">
  52. <center><a href="dobasket.phtml?type=1&id_book=
  53. <?print $row["id_book"];?>">
  54.  
  55. <font size=-1>положить в корзину</font></a></center></td>
  56. <td>
  57. <table>
  58. <tr><td align="right"><i>Автор: </i></td>
  59. <td><?print $row["author"];?> </td></tr>
  60. <tr><td align="right"><i>Название: </i></td>
  61. <td><?print $row["name_book"];?></td></tr>
  62. <tr><td align="right"><i>Издательство: </i></td>
  63. <td><a href="show.phtml?type=1&id_publ=
  64. <?print $row["id_publ"];?>"><?print $row["name_publ"];?></a>
  65. </td></tr>
  66. <tr><td align="right"><i>Количество страниц: </i></td>
  67. <td><?print $row["pages"];?> </td></tr>
  68. <tr><td align="right"><i>Цена: </i></td>
  69. <td> <?print $row["price"];?></td></tr>
  70. <tr><td align="right"><i>Категория: </i></td>
  71. <td><a href="show.phtml?type=2&id_cat=
  72. <?print $row["id_cat"];?>"><?print $row["name_cat"];?></a>
  73. </td></tr>
  74. </table>
  75. </td>
  76. </tr>
  77. </table>
  78. </td></tr>
  79. <?
  80. include("footer.phtml");
  81. ?>
  82.  

Все равно выдает ошибку в строке 44, не могу понять почему
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in X:\denwer\www\denwer\diplom\show.phtml on line 44


Отредактировано модератором: LIME, 02 Февраля, 2012 - 14:24:08
 
 Top
x_nick_x
Отправлено: 27 Января, 2012 - 07:17:18
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2011  


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




Надо присваивать
а не сравнивать.

(Отредактировано автором: 27 Января, 2012 - 09:19:13)

 
 Top
Fraezar
Отправлено: 01 Февраля, 2012 - 08:08:03
Post Id


Новичок


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


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




Исправил, спасибо. Теперь выдает сообщение об ошибке: Не могу выполнить запрос 2sdfsd!, вроде же всё правильно?!
 
 Top
Мелкий Супермодератор
Отправлено: 01 Февраля, 2012 - 09:05:59
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




http://forum.php.su/topic.php?fo...8&topic=1140

А так же возьмите другой учебник.
0) используйте нормальные имена переменных, вместо $result1, $strSQL1.
1) $HTTP_GET_VARS устарели уже давно. Используйте $_GET
2) не говоря уже о sql-инъекциях


-----
PostgreSQL DBA
 
 Top
FRIK
Отправлено: 01 Февраля, 2012 - 18:15:01
Post Id


Частый гость


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


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

[+]


конечно сам еще можно сказать новичок
но мне кажется вот это
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE
  2. id_cat=".$id_cat;

надо поменять на это
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE
  2. id_cat=".$id_cat."";

потому что на сколько я знаю запрос вроде должен быть в ковычках!
 
 Top
Kirilik
Отправлено: 02 Февраля, 2012 - 10:12:14
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2011  


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




Во-первых, кавычки в кавычках должны быть разными, либо одинарные в двойных, либо наоборот.
Во-вторых, вот это вот:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE
  2. id_cat=".$id_cat."";

следует заменить на это:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat='" .$id_cat. "'";

ТАК ДЕЛАЕТСЯ ЕСЛИ В $id_cat СОДЕРЖИТСЯ СТРОКА!

Т.е. здесь соединяются 3 строки:
начало строки запроса:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat='"

ее конец:
и вставка между ними: $id_cat
а все они соединяются оператором конкатенации точка - "."
При обработке этой строки SQL отбросит все ВНЕШНИЕ кавычки строк, подставит вместо переменной ее значение и будет вот что:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT name_cat FROM categories WHERE id_cat = 'Старые хиты'

Если же в переменной содержится число, то разбиение на строки делать не надо:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat = $id_cat";


А вот написанное автором темы:
PHP:
скопировать код в буфер обмена
  1. "SELECT id_book FROM books WHERE books.id_publ=".$id_publ;

после обработки SQL будет выглядеть так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT name_cat FROM categories WHERE id_cat =

Естественно, что такой запрос завершится неудачей.
 
 Top
snikers987
Отправлено: 02 Февраля, 2012 - 10:38:15
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




FRIK пишет:
конечно сам еще можно сказать новичок
но мне кажется вот это
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE
  2. id_cat=".$id_cat;

надо поменять на это
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE
  2. id_cat=".$id_cat."";

потому что на сколько я знаю запрос вроде должен быть в ковычках!


Ну и в чем же тут отличие? Хм


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Kirilik
Отправлено: 02 Февраля, 2012 - 10:41:55
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2011  


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




snikers987, вы очень невнимательно прочитали то что я написал.
Я писал не это:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat=".$id_cat."";

а вот это:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat='" .$id_cat. "'";

Будьте внимательней.
А лучше вернитесь и прочтите. Особенно первое выделение жирным шрифтом. Там ответ на ваш вопрос.
И прочтите до конца.

(Отредактировано автором: 02 Февраля, 2012 - 10:48:30)

 
 Top
Мелкий Супермодератор
Отправлено: 02 Февраля, 2012 - 10:48:20
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Kirilik, а вы, в свою очередь, очень невнимательно прочитали, кого цитировал snikers987. Рекомендую вернуться и прочитать.


-----
PostgreSQL DBA
 
 Top
snikers987
Отправлено: 02 Февраля, 2012 - 10:50:47
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Цитата:
Во-первых, кавычки в кавычках должны быть разными, либо одинарные в двойных, либо наоборот.

Бред
Цитата:

А вот написанное автором темы:
PHP:
скопировать код в буфер обмена
  1. "SELECT id_book FROM books WHERE books.id_publ=".$id_publ;

после обработки SQL будет выглядеть так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT name_cat FROM categories WHERE id_cat =

Естественно, что такой запрос завершится неудачей.

Аналогично

Kirilik пишет:
snikers987, вы очень невнимательно прочитали то что я написал.
Я писал не это:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat=".$id_cat."";

а вот это:
PHP:
скопировать код в буфер обмена
  1. "SELECT name_cat FROM categories WHERE id_cat='" .$id_cat. "'";

Будьте внимательней.
А лучше вернитесь и прочтите. Особенно первое выделение жирным шрифтом. Там ответ на ваш вопрос.
И прочтите до конца.
Я разве вас цитировал?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Kirilik
Отправлено: 02 Февраля, 2012 - 11:00:32
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2011  


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




Ребята я был не прав - вопрос действительно был не ко мне.
snikers987 ИЗВИНИТЕ.
Но все ж ответ на ваш вопрос я дал в первом жирном выделении.
(Добавление)
[quote=snikers987]Во-первых, кавычки в кавычках должны быть разными, либо одинарные в двойных, либо наоборот
Бред
[quote]
И в чем же бред? Об этом пишут во всех пособиях и книгах по PHP. Разве нет?
 
 Top
Мелкий Супермодератор
Отправлено: 02 Февраля, 2012 - 11:10:02
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Кавычки могут быть любыми. Главное - соблюдать синтаксис обоих языков: PHP и SQL.


-----
PostgreSQL DBA
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB