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 :: Версия для печати :: В результате поиска по таблицы БД mysql на страницу выводится лишь 1 результат
Форумы портала PHP.SU » » Вопросы новичков » В результате поиска по таблицы БД mysql на страницу выводится лишь 1 результат

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

1. argentum - 16 Апреля, 2019 - 09:01:54 - перейти к сообщению
Добрый день!
Прошу помощи, суть проблемы такова:
Нужно сделать поиск по 1 столбцу таблицы (ИНН), в результате которого на страницу будет выводиться либо строка (строки), у которых значение ИНН совпадает, либо сообщение о неудаче ("Организация не найдена").
Однако, если в таблице есть строки с совпадающими значениями ИНН, то выводится лишь первая строка, а не все.

Вот код:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require 'scripts/connect.php';
  3. $in_n = trim($_REQUEST['in_n']);
  4.  
  5. $sql_select = "SELECT * FROM reestr WHERE in_n='$in_n'";
  6. $result = mysql_query($sql_select);
  7. $row = mysql_fetch_array($result);
  8.  
  9. if($row)
  10. {
  11.         printf("<p>Организация: " .$row['organi_zation'] . "</p>
  12.        <p><i>Сведения о выданном сертификате:</i></p><p>№ сертификата: " .$row['certificate_number'] . "</p><p>ГОСТ: " .$row['go_st'] . "</p><p>Эксперты: " .$row['Ex_perts'] . "</p><p>Дата выдачи сертификата: " .$row['Date_of_certification'] . "</p><p>Действует до: " .$row['valid_until'] . "</p><p>Статус: " .$row['stat_us'] . "</p><hr /><br/>"
  13.         );
  14. }
  15. else{echo ("<h>Организация не найдена</h><hr /><br/><br/>");}
  16.  
  17.  
  18. ?>


Я так понимаю проблема в отсутствии цикла while, однако, при попытке его добавить стала выводиться не первая, а вторая строка, но не обе, как задумано.
Плюс не могу сообразить как вывести сообщение об отсутствии записи в таблице (та самая "Организация не найдена"), выводится пустая страница. Вот второй код с while:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require 'scripts/connect.php';
  3. $in_n = trim($_REQUEST['in_n']);
  4.  
  5. $sql_select = "SELECT * FROM reestr WHERE in_n='$in_n'";
  6. $result = mysql_query($sql_select);
  7. $row = mysql_fetch_array($result);
  8.  
  9.  
  10.     while($row = mysql_fetch_array($result))
  11. {   echo("<p>Организация: " .$row['organi_zation'] . "</p>
  12.        <p><i>Сведения о выданном сертификате:</i></p><p>№ сертификата: " .$row['certificate_number'] . "</p><p>ГОСТ: " .$row['go_st'] . "</p><p>Эксперты: " .$row['Ex_perts'] . "</p><p>Дата выдачи сертификата: " .$row['Date_of_certification'] . "</p><p>Действует до: " .$row['valid_until'] . "</p><p>Статус: " .$row['stat_us'] . "</p><hr /><br/>"
  13.         );
  14. }
  15. if(!$sql_select)
  16. {echo("<h>Организация не найдена</h><hr /><br/><br/>") . mysql_error();
  17.     exit;
  18. }
  19.  
  20. ?>


Подскажите, пожалуйста, в каком направлении следует думать, чтоб осуществить задуманную задачу. Заранее спасибо за помощь.
2. LIME - 16 Апреля, 2019 - 16:44:48 - перейти к сообщению
7. - $row = mysql_fetch_array($result); - удалить
(Добавление)
да прочитай уже любую статью "php - работа с бд для чайников"
разные статьи
чтоб сравнить и понять
3. argentum - 17 Апреля, 2019 - 03:44:24 - перейти к сообщению
LIME пишет:
7. - $row = mysql_fetch_array($result); - удалить
(Добавление)
да прочитай уже любую статью "php - работа с бд для чайников"
разные статьи
чтоб сравнить и понять


Спасибо, результат выводится как нужно.
И да, спасибо за совет, я читаю, пытаюсь анализировать, но пока некоторые вещи непросто понять, поскольку погружаюсь в php всего около недели.
4. LIME - 17 Апреля, 2019 - 10:58:52 - перейти к сообщению
argentum пишет:
Спасибо, результат выводится как нужно.
а понятно почему?
PHP:
скопировать код в буфер обмена
  1. if (!mysql_num_rows($result)) {
  2.     echo("<h>Организация не найдена</h><hr /><br/><br/>") . mysql_error();
  3.     exit;
  4. }

после получения result

 

Powered by ExBB FM 1.0 RC1