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 :: Версия для печати :: distinct в запросе
Форумы портала PHP.SU » » Работа с СУБД » distinct в запросе

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

1. inhell - 12 Марта, 2015 - 15:16:34 - перейти к сообщению
Добрый день!
Есть запрос Select к БД InterBase, используются функции ibase_query для выполнения запроса и ibase_fetch_assoc для получения результата. Запрос выбирает фамилии из таблицы. Для вывода не повторяющихся значений используется distinct.
Почему то запрос не возвращает запись, если она присутствует в таблице в единственном числе. Например в таблице такие записи:
    Иванов
    Иванов
    Петров
    Петров
    Сидоров

Запрос вернет
    Иванов
    Петров

Сидоров не возвращается. Если на прямую к бд такой запрос произвести, вернет как и положено
    Иванов
    Петров
    Сидоров

Что скажете?
2. RickMan - 12 Марта, 2015 - 15:34:49 - перейти к сообщению
Вы думаете попали в шоу битва экстрасентов? Что за InterBase? Что за ibase_query и ibase_fetch_assoc? Лайте больше информации и получите больше ответов.
3. inhell - 12 Марта, 2015 - 15:42:51 - перейти к сообщению
RickMan пишет:
Вы думаете попали в шоу битва экстрасентов? Что за InterBase? Что за ibase_query и ibase_fetch_assoc? Лайте больше информации и получите больше ответов.

ок, я честно говоря подумал, что ibase_fetch_assoc не корректно работает с distinct.

БД - Firebird 1.5

Скрипт на PHP
CODE (htmlphp):
скопировать код в буфер обмена
  1. $q1="SELECT  distinct username FROM table";    
  2. $result=ibase_query($db_conn, $q1);
  3. $row=ibase_fetch_assoc($result);
  4. while ($row=ibase_fetch_assoc($result))
  5. {
  6. print $row['USERNAME'];
  7. }
4. Мелкий - 12 Марта, 2015 - 15:48:59 - перейти к сообщению
RickMan пишет:
Что за InterBase?

Это такой привет из прошлого тысячелетия: https://ru[dot]wikipedia[dot]org/wiki/Interbase Прародитель Firebird.
http://php.net/manual/en/book.ibase.php

В живую не видел ни ту ни другую, так что по теме ничего не скажу.
5. Sail - 12 Марта, 2015 - 16:25:10 - перейти к сообщению
inhell, 3-ю строчку из приведённого Вами кода грохните.
6. esterio - 12 Марта, 2015 - 16:36:56 - перейти к сообщению
Мелкий пишет:
В живую не видел ни ту ни другую, так что по теме ничего не скажу.

А я в делфи еще 7 версии игрался с InterBase. Очень тугая штука
7. SAD - 12 Марта, 2015 - 17:17:13 - перейти к сообщению
таки, я думаю, проблема здесь

PHP:
скопировать код в буфер обмена
  1. while ($row=ibase_fetch_assoc($result))
  2. {
  3. print $row['USERNAME'];
  4. }


попробуйте поиндексно обратиться к первым, для интереса, 5 записям
8. inhell - 12 Марта, 2015 - 18:40:15 - перейти к сообщению
Sail пишет:
inhell, 3-ю строчку из приведённого Вами кода грохните.

Ни на секунду не сомневался, что мне здесь помогут!
Спасибо! Скрипт работает как надо

 

Powered by ExBB FM 1.0 RC1