Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Илхом
2 / 2 / 0
Регистрация: 19.04.2015
Сообщений: 209

Использование While вместо FOR

15.10.2015, 15:09. Показов 1112. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасте)
Сложилась такая задача, я беру из базы URL для фото и приравняю её к массиву $post[], с сикцом FOR 1000раз.
Будет так что у меня на базе будет находится 50 или 123 или 345 ссылок на фото. и не смотря на это мой цикл проверяет базу 1000 раз как Вы видите.
Можно ли сделать так чтобы цикл перестал проверить базу после последней проверки. Потому что это лишняя нагрузка серверу кажется.
PHP
1
2
3
4
5
6
7
8
9
<?php
        for ($i=0; $i<=1000; $i++){
                $res = mysql_query ("SELECT id, url_small_photo FROM posts WHERE id = $i", $db);
                $myrow = mysql_fetch_array($res);
                        if ($myrow['url_small_photo'] != ""){
                            $post[] = $myrow['url_small_photo'];
                        }
        }       
        ?>
Благодарен за любую помощь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2015, 15:09
Ответы с готовыми решениями:

Использование ? вместо if
Такое обьявление переменных пришло навсегда ? Я не много пишу, поэтому хочу спросить - пользуется это популярностью? По моему это шаг к...

Использование рекурсии вместо цикла
Помогите, пожалуйста! Нужно вместо циклов использовать рекурсию, как это сделать? #include &lt;iostream&gt; using namespace std; ...

Использование CLEAR вместо RELEASE
Всем доброго времени суток. Учусь в университете на 3 курсе. Есть предмет Моделирование систем(дословный перевод). На лабораторной была...

12
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.10.2015, 15:18
MySQL
1
SELECT id, url_small_photo FROM posts WHERE id  < 1001
...
1
 Аватар для Илхом
2 / 2 / 0
Регистрация: 19.04.2015
Сообщений: 209
15.10.2015, 15:21  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
SELECT id, url_small_photo FROM posts WHERE id < 1001
id < 1001
1. как это работает?
2. с ним и цикла не надо?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.10.2015, 15:40
Цитата Сообщение от Илхом Посмотреть сообщение
1. как это работает?
Как написано так и работает. Выберутся все записи где айди меньше 1001.
Цитата Сообщение от Илхом Посмотреть сообщение
2. с ним и цикла не надо?
mysql_fetch_* фетчит по одной записи. Для него нужен вайл
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
15.10.2015, 15:59
Лучший ответ Сообщение было отмечено Илхом как решение

Решение

PHP
1
2
3
4
5
6
7
<?php
                $res = mysql_query ("SELECT id, url_small_photo FROM posts);
                $myrow = mysql_fetch_array($res);
                        if ($myrow['url_small_photo'] != ""){
                            $post[] = $myrow['url_small_photo'];
                        }
        ?>
1
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.10.2015, 16:14
Цитата Сообщение от Laroux Посмотреть сообщение
mysql_fetch_array
Зачем mysql_fetch_array вместо mysql_fetch_assoc ?
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
15.10.2015, 16:15
Согласен..
0
 Аватар для Илхом
2 / 2 / 0
Регистрация: 19.04.2015
Сообщений: 209
15.10.2015, 17:04  [ТС]
Цитата Сообщение от Laroux Посмотреть сообщение
<?php
$res = mysql_query ("SELECT id, url_small_photo FROM posts);
$myrow = mysql_fetch_array($res);
if ($myrow['url_small_photo'] != ""){
$post[] = $myrow['url_small_photo'];
}
?>
вывод будет таким?
$post[0] = id1
$post[1] = id2
...
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
15.10.2015, 17:09
да не.. Вы ж туда $myrow['url_small_photo'] вставляете
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
15.10.2015, 17:23
Лучший ответ Сообщение было отмечено Илхом как решение

Решение

Зачем вообще использовать for с ограниченным числом итераций?

PHP
1
2
3
4
5
6
7
8
<?php
 
$query = mysql_query("SELECT id, url_small_photo FROM posts");
while ($res = mysql_fetch_assoc($query)){
    if ($res['url_small_photo'] != ""){
        $post[] = $res['url_small_photo'];
    }
}
Добавлено через 8 минут
Или даже лучше будет
PHP
1
2
3
4
5
6
$query = mysql_query("SELECT id, url_small_photo FROM posts");
while ($res = mysql_fetch_assoc($query)){
    if ($res['url_small_photo'] != ""){
        $post = $res;
    }
}
Потом $post['id'] будет id записи
а $post['url_small_photo'] ссылка на картинку или что там у вас
1
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.10.2015, 17:28
Цитата Сообщение от Xenox Посмотреть сообщение
PHP
1
$post = $res;
Тогда $post будет постоянно переписываться и останется лишь последняя запись
PHP
1
$post[] = $res;
1
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
15.10.2015, 17:33
Цитата Сообщение от crautcher Посмотреть сообщение
Тогда $post будет постоянно переписываться и останется лишь последняя запись
Да все верно $post[], обшибся чуть
1
 Аватар для Илхом
2 / 2 / 0
Регистрация: 19.04.2015
Сообщений: 209
15.10.2015, 21:55  [ТС]
отлично спасибо ребята
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2015, 21:55
Помогаю со студенческими работами здесь

Использование флага вместо счетчика
Здравствуйте, уважаемые форумчане! Не прошу о многом, просто помогите, пожалуйста, вместо переменной skip в коде ниже использовать...

Использование JMP вместо CALL.
Даны три массива, Требуется вычислить среднее арифметическое их максимальных элементов. Каждый массив задается двумя параметрами: адресом...

Использование картинки вместо кнопки
Всем привет. Не получается использовать картинку вместо кнопки, при запуски картинка не появляется. &lt;Window...

Использование соглашений вместо договоров в УТ 11.3
Здравствуйте. Хотим перейти с использования договоров на соглашения. Но есть проблема, по договорам у клиентов есть долги. Есть ли...

Использование классов заглушек вместо null
Насколько правильно сделан код? class Program { static void Main(string args) { var one = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru