Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2012, 17:25   #1
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию Обработка результатов выборки из БД

Доброго вам ув. форумчане. У меня такой вопрос: сделал я выборку из БД и получил результат
PHP код:
$row mysql_fetch_assoc($res); 
но возникает потребность проверить есть ли в моей выборке строка которая соответствует некоторым условиям, и дабы не делать ещё одно подобного запроса к БД можно ли перебрать первую выборку чтоб либо найти нужную строку либо получить false?
Вот пример пояснее:
это первая выборка:
PHP код:
mysql_query("SELECT * FROM `table` WHERE one='$one'"); 
а вот вторая:
PHP код:
mysql_query("SELECT * FROM `table` WHERE one='$one' AND two='$two'"); 
можно ли избежать второго запроса из БД, а просто снова перебрать первый с нужными условями?
PHPdev вне форума Ответить с цитированием
Старый 14.07.2012, 11:57   #2
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Да, странный форум попался. Уже второй раз тут сам себе помогаю.
В общем есть на этот счёт идея, но всёж мне и тут нужна помощь. В общем запускаю я цикл
PHP код:
while($row mysql_fetch_assoc($res)){
        if (
$row['two'] == 2){
            echo 
$row['two'];
        }
        else{
            echo 
"false";
        }
    } 
Но проблема в том, что результат будет определятся для всех строк, а мне нужен конечный результат. Так как в выборке может либо быть 1 строка с нужными данными, либо её вообще там не существует. Может кто-нибудь, чтойто посоветовать?!

Последний раз редактировалось PHPdev; 14.07.2012 в 12:00.
PHPdev вне форума Ответить с цитированием
Старый 14.07.2012, 12:50   #3
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Ладно, не знаю на сколько это правильно, но вроде такой вариант работает
PHP код:
$newres false;
while(
$row mysql_fetch_assoc($res)){
        if (
$row['two'] == 2){
            
$newres true;
        }
}
echo 
$newres
Буду рад выслушать советы/замечания.

Последний раз редактировалось PHPdev; 14.07.2012 в 12:55.
PHPdev вне форума Ответить с цитированием
Старый 14.07.2012, 15:02   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Буду рад выслушать советы/замечания.
ну последний вариант вполне себе рабочий.

только цикл while крутите пока ($newres)==false) и ваше условие.

ну, или после того, как обнаружили совпадение - прерывайте цикл:
PHP код:
        if ($row['two'] == 2){
            
$newres true;
            break;
        } 
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.07.2012, 17:09   #5
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

О, благодарю, эт то что надо!
PHPdev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Критерия выборки WizarD.89 Microsoft Office Excel 2 25.03.2012 09:31
Запрос выборки Asblue БД в Delphi 6 17.12.2010 17:45
генерация выборки Ivan111 Общие вопросы C/C++ 0 09.12.2010 18:10
Выборки из бд Lokos БД в Delphi 6 15.12.2009 15:20
Построение выборки Pankratyeva Microsoft Office Excel 3 09.02.2009 15:45