Здравствуйте, очень надеюсь на помощь. Есть код, нужно выводить сотрудников на страницу с категорией которая равна скажем kcat, вроде бы все сделал но вывод ругается и пишит следующее: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 31 вот часть отвечающая за вывод и необходимое условие Код (PHP): <? $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat "); $sotinfo1 = mysql_query("SELECT * FROM sotrudniki"); $sotinfo2 = mysql_query("SELECT * FROM sotinfo"); $rowinfo2 = mysql_fetch_array($sotinfo2); $cat_id = $_GET['id']; ?> <? while($rowinfo1 = mysql_fetch_array($sotinfo1)){ if('sotmech.php&id='. $rowinfo1['cat_id'] == 'sotmech.php&id='. $id){ echo $rowinfo1['info_caf']; } } ?> А вот участок с 31 строкой Код (PHP): <? while($rowinfo = mysql_fetch_array($sotinfo)){ if($id == $rowinfo['cat_info']){ echo ' ?> Когда условия нет, выводится только одна запись не имеющая никакую категорию Заранее спасибо PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
ошибка гласит что в указанную функцию, получающую "следующий кортеж результирующей таблицы" передан НЕ ресурс результирующий таблицы. обычно такое происходит при ошибке запроса. 1) вывести запрос и проверить его в графических средствах вроде phpmyadmin и 2) вывести текст ошибки через mysql_error() сразу после выполнения запроса - укажет что именно в запросе пошло не так. темы создавать в разделе для новичков - не надо стесняться уровня своих знаний.
Вот таким запросом я вызывал error Код (PHP): echo mysql_errno($link) . ": " . mysql_error($link). "\n"; Правильно ли? На странице после этого было написано вот это 0: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 41
Код (PHP): <? $link = mysql_connect('localhost', 'имя БД', 'пароль'); mysql_query('SET names "cp1251"'); mysql_select_db('agroen',$link); echo mysql_errno($link) . ": " . mysql_error($link). "\n"; // вот то место $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat "); $sotinfo1 = mysql_query("SELECT * FROM sotrudniki"); $sotinfo2 = mysql_query("SELECT * FROM sotinfo"); $rowinfo2 = mysql_fetch_array($sotinfo2); $cat_id = $_GET['id']; ?>
Согласно рекомендациям по первой ссылке вставил в начало скрипта 2 строчки Код (PHP): ini_set('display_errors',1); error_reporting(E_ALL); На странице появилось следующее: Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Notice: Undefined variable: id in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 24 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/users/agroen/htdocs/pages/categories/sotmech.php on line 38 Вот код самой страницы Код (PHP): <? ini_set('display_errors',1); error_reporting(E_ALL); $link = mysql_connect('localhost', 'название БД', 'пароль БД'); mysql_query('SET names "cp1251"'); mysql_select_db('название БД',$link); $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat "); $sotinfo1 = mysql_query("SELECT * FROM sotrudniki"); $sotinfo2 = mysql_query("SELECT * FROM sotinfo "); $rowinfo2 = mysql_fetch_array($sotinfo2); $cat_id = $_GET['id']; ?> <? while($rowinfo1 = mysql_fetch_array($sotinfo1)){ if('sotmech.php&id='. $rowinfo1['cat_id'] == 'sotmech.php&id='. $id){ echo $rowinfo1['info_caf']; } } ?> <div class="sotrudniki-block-main"> <ul> <? while($rowinfo = mysql_fetch_array($sotinfo)){ if($id == $rowinfo['cat_info']){ echo ' <li> <div class="clear-block"></div> <div class="left-block-sot"> <div class="photo-sot"> <img src="'.$rowinfo['image'].'"> [url="?categories=sotrudnik.php&id='. $rowinfo['id'].'"]'.$rowinfo['name'].'</p>[/url] </div> </div> <div class="right-block-sot"> <div class="info-block-sot"> <p>Телефон: '.$rowinfo['telefon'].'</p> <p>E-mail: '.$rowinfo['email'].'</p> <p>Skype: [url="skype:'.$rowinfo['skype'].'?call"]<img src="../../img/skype.png" title="Позвонить с помощью Skype">[/url]</p> <p>Кабинет: '.$rowinfo['cabinet'].'</p> </div> <p>'.$rowinfo['work'].'</p> </div> </li>'; } } ?> </ul> </div> Самое главное, без объявления условия where cat_info = kcat все пучком (естесно при убратии двух строчек вверху скрипта)
irbis_forever зачем выводить ошибку там где еще не выполнен запрос который приводит к ошибке??? алгоритмизацию программирования в школе проходят.
Ganzal По поводу вывода ошибки я и прошу помощи, в школе у нас информатика сводилась к рисованию в paint а потом игре по локалке )
при заваривании чая не имеет значения, насыпать в начале сахар или потом?, или все делать по инструкции? все ведь сводится к чашке ароматного чая, Добавлено спустя 8 минут 23 секунды: Скорее всего я нашел эту ошибку, вот что 1054: Unknown column 'kcat' in 'where clause' появилось после установки сюды Код (PHP): ? $link = mysql_connect('localhost', 'имя БД', 'пароль'); mysql_query('SET names "cp1251"'); mysql_select_db('agroen',$link); $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat "); echo mysql_errno($link) . ": " . mysql_error($link). "\n"; // вот то место $sotinfo1 = mysql_query("SELECT * FROM sotrudniki"); $sotinfo2 = mysql_query("SELECT * FROM sotinfo"); $rowinfo2 = mysql_fetch_array($sotinfo2); $cat_id = $_GET['id'];
Всем, и помогающим, и рассуждающим и всем остальным не очень остроумным, большое спасибо! Проблема решилась, и все стало очень шикарно, вот правильный код для моих нужд: Код (PHP): $sotinfo = mysql_query("SELECT * FROM sotinfo WHERE cat_info = kcat "); $sotinfo1 = mysql_query("SELECT * FROM sotrudniki WHERE cat_id = kcat"); $sotinfo2 = mysql_query("SELECT * FROM sotinfo WHERE cat_info = kcat"); $rowinfo2 = mysql_fetch_array($sotinfo2); $cat_id = $_GET['id']*kcat; Где kcat нужное мне условие P.S. Отдельное спасибо Ganzal за начальный "толчок" в нужном направлении )