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

 PHP.SU

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


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

> Без описания
argentum
Отправлено: 16 Апреля, 2019 - 09:01:54
Post Id


Новичок


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


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




Добрый день!
Прошу помощи, суть проблемы такова:
Нужно сделать поиск по 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. ?>


Подскажите, пожалуйста, в каком направлении следует думать, чтоб осуществить задуманную задачу. Заранее спасибо за помощь.
 
 Top
LIME
Отправлено: 16 Апреля, 2019 - 16:44:48
Post Id


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


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


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




7. - $row = mysql_fetch_array($result); - удалить
(Добавление)
да прочитай уже любую статью "php - работа с бд для чайников"
разные статьи
чтоб сравнить и понять

(Отредактировано автором: 16 Апреля, 2019 - 16:45:14)

 
 Top
argentum
Отправлено: 17 Апреля, 2019 - 03:44:24
Post Id


Новичок


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


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




LIME пишет:
7. - $row = mysql_fetch_array($result); - удалить
(Добавление)
да прочитай уже любую статью "php - работа с бд для чайников"
разные статьи
чтоб сравнить и понять


Спасибо, результат выводится как нужно.
И да, спасибо за совет, я читаю, пытаюсь анализировать, но пока некоторые вещи непросто понять, поскольку погружаюсь в php всего около недели.

(Отредактировано автором: 17 Апреля, 2019 - 06:20:15)

 
 Top
LIME
Отправлено: 17 Апреля, 2019 - 10:58:52
Post Id


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


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


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




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

после получения result
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB