powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему хранимая процедура выводит только первую строку?
17 сообщений из 17, страница 1 из 1
Почему хранимая процедура выводит только первую строку?
    #38256349
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хранимая процедура

Код: sql
1.
2.
3.
4.
5.
6.
CREATE PROCEDURE `catalog`()
BEGIN
    SELECT *
        FROM catalog
        WHERE parent_id = 0;
END$$



Вызываю ее в phpadminne
И она выводит только первую строку.

ПОЧЕМУ?
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256364
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muraveyПОЧЕМУ?потому что запрос, что внутри неё находится, выводит только одну строку?
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256371
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, Подскажите тогда
как вывести все и отсортировать по полю name.

Все пока тестирую в phpadmine.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256393
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muraveyкак вывести всеЧто именно вам надо вывести? если у вас в таблице только одна запись, удовлетворяющая условию parent_id = 0, то одна запись и должна выводиться...
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256406
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir...то одна запись и должна выводиться...
В том и дело что в таблице 4 записи удовлетворяющиеся parent_id = 0.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256410
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muravey, покажите вывод

Код: sql
1.
SHOW CREATE PROCEDURE `catalog`
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256418
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Procedure 	
catalog 

sql_mode 	

Create Procedure 		 	
CREATE DEFINER=`root`@`localhost` PROCEDURE `catalog`()
BEGIN
   SELECT name
       FROM catalog
       WHERE parent_id = 0;
END 	

character_set_client 
utf8 	

collation_connection
cp1251_bin 	

Database Collation
utf8_general_ci
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256428
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muravey, странно. Единственное предположение - что чудит пхпмайадмин. Впрочем, как вы процедуру вызываете? Покажите запрос.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256439
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
В том и дело что этот код я пока тестирую в пхпадмине.
И у него там есть выполнить процедуру, задаешь параметры и пошло выполнение.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256452
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В самом PHP коде

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
// Метод обертка для PDOStatement::fetchAll()
  public static function GetAll($sqlQuery, $params = null,
                                $fetchStyle = PDO::FETCH_ASSOC)
  {
    // Инииализируем возвращаемое значение в null
    $result = null;

    // Пытаемся выполнить SQL-запрос или хранимую проедуру
    try
    {
      // Получаем дескриптор базы данных
      $database_handler = self::GetHandler();

      // Подготавливаем запрос к выполнению
      $statement_handler = $database_handler->prepare($sqlQuery);

      // Выполняем запрос
      $statement_handler->execute($params);
      
      // Получаем результат
      $result = $statement_handler->fetchAll($fetchStyle);
    }
    // Генерируем ошибку если при выполнении SQL-запроса возникло исключение
    catch(PDOException $e)
    {
      // Закрываем дескриптор базы данных и генерируем ошибку
      self::Close();
      trigger_error($e->getMessage(), E_USER_ERROR);
    }

    // Возвращаем результаты запроса
    return $result;
  }



Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public static function GetCatalogParentId($parent_id, $sort)
    {
        $sql = 'CALL catalog_get_catalog_parent_id(:parent_id,
                                                   :sort)';
                                                   
        $params = array(':parent_id' => $parent_id,
                        ':sort' => $sort);
                        
        return DatabaseHandler::GetAll($sql, $params);
    }



Код: php
1.
$this->mCatalog = Catalog::GetCatalogParentId($this->mParentId, $this->mSortCatalog);



выводит все строки, но не сортирует по заданному значению $this->mSortCatalog.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256456
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто такой DatabaseHandler ?
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256462
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftА кто такой DatabaseHandler ?

Код: php
1.
2.
// Класс, предоставляющий базовую функциональность доступа к данным
class DatabaseHandler
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256465
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muraveyвыводит все строкиЗначит, проблема в пхпмайадмине.muraveyно не сортирует по заданному значениюЛибо ставьте order by в запросе, либо спрашивайте на форуме по пхп , почему у вас этот пхпшный код не работает как надо.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256474
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, Пока ничего не помогло. Спасибо что откликнулись.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256583
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muraveymiksoftА кто такой DatabaseHandler ?

Код: php
1.
2.
// Класс, предоставляющий базовую функциональность доступа к данным
class DatabaseHandler

Ну вот в этом классе проблему и ищете. В коде MySQL-процедуры у вас ничего, связанного с сортировкой, нет. Следовательно код, выполняющий сортировку должен быть в классе.
...
Рейтинг: 0 / 0
Почему хранимая процедура выводит только первую строку?
    #38256598
muravey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Спасибо за отклик.

Решение с сортировкой в другой теме тут
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Почему хранимая процедура выводит только первую строку?
    #39319944
Ivan_Ko84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С выводом 1 строки проблема, скорее всего в пхпмайадмине.
Аналогично через интерфейс выводит только 1 строку, но если выполнить скриптом: "call [procedure_name]()", то все корректно работает

Хоть и поздно, но вдруг еще пригодится)))
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему хранимая процедура выводит только первую строку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]