За последние 24 часа нас посетил 17721 программист и 1712 роботов. Сейчас ищут 925 программистов ...

ошибка при выводе данных

Тема в разделе "MySQL", создана пользователем irbis_forever, 6 ноя 2015.

  1. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте, очень надеюсь на помощь. Есть код, нужно выводить сотрудников на страницу с категорией которая равна скажем 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):
    1. <?
    2.  
    3.    $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat ");
    4.    
    5.    $sotinfo1 = mysql_query("SELECT * FROM sotrudniki");
    6.    
    7.    $sotinfo2 = mysql_query("SELECT * FROM sotinfo");
    8.    
    9.    $rowinfo2  = mysql_fetch_array($sotinfo2);
    10.  
    11.    $cat_id = $_GET['id'];
    12.  
    13. ?>
    14.  
    15. <?
    16. while($rowinfo1  = mysql_fetch_array($sotinfo1)){
    17. if('sotmech.php&id='. $rowinfo1['cat_id'] == 'sotmech.php&id='. $id){ 
    18. echo $rowinfo1['info_caf'];
    19. }
    20. }
    21.  
    22. ?>
    А вот участок с 31 строкой

    Код (PHP):
    1. <?
    2.                         while($rowinfo  = mysql_fetch_array($sotinfo)){
    3.                             if($id == $rowinfo['cat_info']){
    4.                                 echo '
    5.                     ?>     
    Когда условия нет, выводится только одна запись не имеющая никакую категорию

    Заранее спасибо

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ошибка гласит что в указанную функцию, получающую "следующий кортеж результирующей таблицы" передан НЕ ресурс результирующий таблицы. обычно такое происходит при ошибке запроса. 1) вывести запрос и проверить его в графических средствах вроде phpmyadmin и 2) вывести текст ошибки через mysql_error() сразу после выполнения запроса - укажет что именно в запросе пошло не так. темы создавать в разделе для новичков - не надо стесняться уровня своих знаний.
     
  3. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    Вот таким запросом я вызывал error
    Код (PHP):
    1.  
    2. 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
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    смотря в каком месте
     
  5. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    Код (PHP):
    1. <?
    2. $link = mysql_connect('localhost', 'имя БД', 'пароль');
    3.    mysql_query('SET names "cp1251"'); 
    4.   mysql_select_db('agroen',$link);
    5.  echo mysql_errno($link) . ": " . mysql_error($link). "\n"; // вот то место
    6.    $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat ");
    7.    
    8.    $sotinfo1 = mysql_query("SELECT * FROM sotrudniki");
    9.    
    10.    $sotinfo2 = mysql_query("SELECT * FROM sotinfo");
    11.    
    12.    
    13.    
    14.    $rowinfo2  = mysql_fetch_array($sotinfo2);
    15.  
    16.    $cat_id = $_GET['id'];
    17.  
    18. ?>
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    Согласно рекомендациям по первой ссылке вставил в начало скрипта 2 строчки
    Код (PHP):
    1. ini_set('display_errors',1);
    На странице появилось следующее:
    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):
    1. <?
    2. ini_set('display_errors',1);
    3. $link = mysql_connect('localhost', 'название БД', 'пароль БД');
    4.    mysql_query('SET names "cp1251"'); 
    5.   mysql_select_db('название БД',$link);
    6.  
    7.    $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat ");
    8.    
    9.    $sotinfo1 = mysql_query("SELECT * FROM sotrudniki");
    10.    
    11.    $sotinfo2 = mysql_query("SELECT * FROM sotinfo ");
    12.    
    13.    
    14.    
    15.    $rowinfo2  = mysql_fetch_array($sotinfo2);
    16.  
    17.    $cat_id = $_GET['id'];
    18.  
    19. ?>
    20.  
    21. <?
    22. while($rowinfo1  = mysql_fetch_array($sotinfo1)){
    23. if('sotmech.php&id='. $rowinfo1['cat_id'] == 'sotmech.php&id='. $id){ 
    24. echo $rowinfo1['info_caf'];
    25. }
    26. }
    27.  
    28. ?>
    29.  
    30. <div class="sotrudniki-block-main">
    31.  
    32. <ul>
    33.  
    34.  
    35.  
    36.                     <?
    37.                         while($rowinfo  = mysql_fetch_array($sotinfo)){
    38.                             if($id == $rowinfo['cat_info']){
    39.                                 echo '    <li>
    40.                                 <div class="clear-block"></div>
    41.         <div class="left-block-sot">
    42.             <div class="photo-sot">
    43.                 <img src="'.$rowinfo['image'].'">
    44.                                 [url="?categories=sotrudnik.php&id='. $rowinfo['id'].'"]'.$rowinfo['name'].'</p>[/url]
    45.             </div>
    46.         </div>
    47.         <div class="right-block-sot">
    48.             <div class="info-block-sot">
    49.                 <p>Телефон: '.$rowinfo['telefon'].'</p>
    50.                 <p>E-mail: '.$rowinfo['email'].'</p>
    51.                 <p>Skype: [url="skype:'.$rowinfo['skype'].'?call"]<img src="../../img/skype.png" title="Позвонить с помощью Skype">[/url]</p>
    52.                 <p>Кабинет: '.$rowinfo['cabinet'].'</p>
    53.                 </div>    
    54.                 <p>'.$rowinfo['work'].'</p>            
    55.         </div>
    56.     </li>';
    57.                             }
    58.                             
    59.                         }
    60.                     ?>     
    61.  
    62.  
    63.  
    64.  
    65. </ul>
    66. </div>
    Самое главное, без объявления условия where cat_info = kcat все пучком (естесно при убратии двух строчек вверху скрипта)
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    irbis_forever зачем выводить ошибку там где еще не выполнен запрос который приводит к ошибке??? алгоритмизацию программирования в школе проходят.
     
  9. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    Ganzal По поводу вывода ошибки я и прошу помощи, в школе у нас информатика сводилась к рисованию в paint а потом игре по локалке )
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну ты когда чай завариваешь не путаешь же последовательность что куда налить и насыпать?
     
  11. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    при заваривании чая не имеет значения, насыпать в начале сахар или потом?, или все делать по инструкции? все ведь сводится к чашке ароматного чая,

    Добавлено спустя 8 минут 23 секунды:
    Скорее всего я нашел эту ошибку, вот что 1054: Unknown column 'kcat' in 'where clause' появилось после установки сюды
    Код (PHP):
    1. ?
    2. $link = mysql_connect('localhost', 'имя БД', 'пароль');
    3.    mysql_query('SET names "cp1251"'); 
    4.   mysql_select_db('agroen',$link);
    5.  
    6.    $sotinfo = mysql_query("SELECT * FROM sotinfo where cat_info = kcat ");
    7.     echo mysql_errno($link) . ": " . mysql_error($link). "\n"; // вот то место
    8.    $sotinfo1 = mysql_query("SELECT * FROM sotrudniki");
    9.    
    10.    $sotinfo2 = mysql_query("SELECT * FROM sotinfo");
    11.    
    12.    
    13.    
    14.    $rowinfo2  = mysql_fetch_array($sotinfo2);
    15.  
    16.    $cat_id = $_GET['id'];
     
  12. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    идет потеря энергии на растворение сахара, температура падает :)
     
  13. irbis_forever

    irbis_forever Новичок

    С нами с:
    6 ноя 2015
    Сообщения:
    7
    Симпатии:
    0
    Всем, и помогающим, и рассуждающим и всем остальным не очень остроумным, большое спасибо! Проблема решилась, и все стало очень шикарно, вот правильный код для моих нужд:
    Код (PHP):
    1.  
    2. $sotinfo = mysql_query("SELECT * FROM sotinfo WHERE cat_info = kcat "); 
    3. $sotinfo1 = mysql_query("SELECT * FROM sotrudniki WHERE cat_id = kcat");
    4. $sotinfo2 = mysql_query("SELECT * FROM sotinfo WHERE cat_info = kcat");
    5. $rowinfo2  = mysql_fetch_array($sotinfo2);
    6. $cat_id = $_GET['id']*kcat;
    7.  
    Где kcat нужное мне условие

    P.S. Отдельное спасибо Ganzal за начальный "толчок" в нужном направлении )