![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
Здравствуйте, друзья.
Мне нужно на странице моего сайта каждый день выводить три случайные картинки из заданного списка (все картинки находятся в одной папке). Примерно так: ![]() Только это я вывожу вручную. Подскажите, пожалуйста. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
если есть список, массив то есть с путями к картинкам, то остаётся сделать три случайных числа, неповторяющихся
|
|||
|
||||
| HackMan |
|
||||||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
bars80080, зачем придумывать, то что уже придумано, и придумано намного проще
NaglfarNight, всё зависит от того, как устроена структура сайта. Уточни, данные об изображениях хранятся в базе или просто в отдельной папке набор картинок? a) Если в базе и картинок не так много, тогда делай запрос
Если же в базе записей много, тогда ORDER BY RAND() лучше не использовать - сильно грузит сервер. Надо будет сначала сгенерировать 3 случайных числа, сделать из них индексы а потом сделать выборку простым SELECT b) Если это просто набор файлов в папке, тогда что-то вроде такого
Это сообщение отредактировал(а) HackMan - 3.9.2008, 14:30 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
||||||
|
|||||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
HackMan
Без базы. Просто набор картинок в папке. Я тормоз в вопросах php Путь до папки с картинками прописывать где? Тут
Это сообщение отредактировал(а) NaglfarNight - 3.9.2008, 15:08 |
|||
|
||||
| Ockonal |
|
||||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
$path_to_img - меняете на свою папку Все рисунки должны быть такого типа: 1.jpg 2.jpg и т.д. если вам нужно выводить отдельно все 3 ( или сколько ) рисунков:
Вместо "ИНДЕКС" - номер рисунка-1 Это сообщение отредактировал(а) Ockonal - 3.9.2008, 15:35 --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
||||
|
|||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
Ockonal,
Выдаёт ошибку:
|
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
NaglfarNight, попробуйте этот скриптик - специально для вас изменил;)
Присоединённый файл ( Кол-во скачиваний: 7 )
rnd.rar 1,02 Kb-------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| Ockonal |
|
||||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
Ошибся, извините... Выше исправьте на:
Это сообщение отредактировал(а) Ockonal - 3.9.2008, 16:52 --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
||||
|
|||||
| HackMan |
|
||||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
NaglfarNight, да, тут
Ockonal, у меня есть папка images, в ней 866 картинок. Сделаем сравнительный тест моего кода с исправленным твоим а)
В результате получаем 0.000214099884033 б)
В результате получаем 0.000100135803223 Разница во времени составляет 0,00011396408081 сек. Разница в коде - 3 строчки против 9, и мой код в несколько раз прозрачней для понимания, да и ко всему в твоём коде картинки должны иметь пронумерованные имена, подряд, без пропуска, да и очень большой шанс, что сгенерируется несколько одинаковых чисел Спасибо за внимание Это сообщение отредактировал(а) HackMan - 4.9.2008, 08:09 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
||||
|
|||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
HackMan, у меня ваш код выдал 0.031064987182617
тогда как мой - 0.18256306648254 согласен, конечно, что в данном примере рекурсивный обход совсем не обязателен, хотя может быть полезен.... -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| Ockonal |
|
||||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
HackMan
Код ни от куда не выдранный. Я не программист пхп... Просто желание помочь. На счет массива - спасибо, я забыл об этом. Добавлено через 2 минуты и 56 секунд
Извините, конечно, может это зависит от моих знаний, но ваш код мне кажется сложнее. И, как раз, мой более прозрачный. Согласитесь --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
||||
|
|||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
HackMan,
Ockonal, может не будем выяснять у кого код круче и понятнее? NaglfarNight, вопрос решен? если да то отметь пожалуйста его соответствующим образом. -------------------- Amazing |
|||
|
||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
MoLeX
Неа... вопрос ещё не решён. Прошу простить меня за тупость, я с самыми простейшими задачами в пхп справляюсь за сутки, а то и больше HackMan Ваш код привлекает столь маленьким объёмом. Так... где прописывать дирректорию с картинками понятно. Путь абсолютный? А выводим как? |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
NaglfarNight, путь можно как относительный, так и абсолютный. Удобнее - относительный.
Выводить примерно так:
Это сообщение отредактировал(а) HackMan - 5.9.2008, 14:31 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
HackMan,
Вставляю на страничку
Не работает. Может что-то неверно делаю Код Ockonal работает, но иногда почему-то вместо заданых 3-х изображений выводит либо 2, либо 4. Ockonal, для Вашего кода нужно, чтобы все картинки были названы в духе 001.jpg, 002.jpg? Или не важно? Это сообщение отредактировал(а) NaglfarNight - 5.9.2008, 17:20 |
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
Даж не знаю, стоит ли ворошить мой код
Название картинок должно быть только таким: 1.jpg, 2.jpg ... 10.jpg ... 100.jpg И, как я понял, массив нужно объявить массивом, что-то типа такого: $temp[$num_of_show-1] = Array(); HackMan, Поправьте меня, если что. --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
Как не стоит? Работает же, только не совсем так как нужно, значит стоит.
Так... Данную строчку вставила, но всё равно, как заколдованый выводит по 4 картинки Хотя в коде ясно написано
|
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
Ок-ок --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
У меня все работает. Вот код:
Это сообщение отредактировал(а) Ockonal - 5.9.2008, 18:13 --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| NaglfarNight |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
Ockonal,
Вот теперь всё работает и у меня. Вот тут
было
Видимо поэтому выводило неправильное количество. Только вот тут:
нужно так?
|
||||||||
|
|||||||||
| Ockonal |
|
||||||||||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
Да-да
А то будет выводить только первые 3 картинки. Извиняюсь за свои ошибки. Добавлено @ 18:29
Все правильно. В первом месте будет 4 итерации, а не 3 как нужно Добавлено @ 18:30
Вставьте это перед первым for
Будет лучше генерироваться случайное число. Добавлено через 6 минут и 19 секунд Да
Если у вас будет картинка 0.jpg, то можете использовать код выше, но если у вас все картинки начинаются с 1.jpg:
p.s. Если нужно, чтобы не было выведено одинаковых картинок - пишите. Это сообщение отредактировал(а) Ockonal - 5.9.2008, 18:32 --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
||||||||||
|
|||||||||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
Ockonal,
Спасибо! Наконец-то всё работает. По поводу одинаковых картинок, желательно чтобы не было таковых. Можете с этим помочь? |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
Ockonal,
Этим кодом ты второму элементу несуществующего массива $temp задаёшь тип данных "массив". Надо делать так:
Но, вообще, этого делать совсем не обязательно, так как если в PHP присвоишь значение элементу массива с несуществующим индексом - он просто напросто создастся и массив расширит свои рамки. А толку? И что вообще значит "будет лучше генерироваться"? Функция rand() вообще не генерирует случайных чисел. Генерируется одно большое псевдослучайное число которое зависит от системного время. Функция srand() изменяет начальное число генератора псевдослучайных чисел. NaglfarNight, Конечно не работает. /images/avatars/*.jpg - это абсолютный путь. Скрипт будет искать в корне папку images, и ничего не найдёт, потому что там такой нет. Слэш в начале надо убрать Это сообщение отредактировал(а) HackMan - 5.9.2008, 19:23 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
HackMan,
Так пробовала, тоже не работает. Пыталась по разному - и абсолютным, и относительным, и со слэшем, и без него. Ockonal А от расширения файлов тоже зависит? Все должны быть jpg, так? Если у меня есть несколько gif, они не будут отображаться? Это сообщение отредактировал(а) NaglfarNight - 5.9.2008, 19:35 |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
что выводит? -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
HackMan,
это куда нужно вставлять? если ставлю в начало кода, выдаёт: NULL если в конец: array(0) { } |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
1) В каком каталоге находится скрипт?
2) В каком каталоге находятся картинки? 3) Что выводит следующий код
Это сообщение отредактировал(а) HackMan - 5.9.2008, 19:44 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
HackMan
1. /include/sidebar/avatars.php 2. /images/avatars/ 3. /home/u18822/naglfarru/www/include/sidebar/avatars.php Это сообщение отредактировал(а) NaglfarNight - 5.9.2008, 19:54 |
|||
|
||||
| Ockonal |
|
|||
![]() Smile ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 9.7.2007 Где: Ukraine::Nikolaev ; Репутация: 1 Всего: 3 |
Да, в том и недостаток моего скрипта - он только для одной цели. HackMan Спасибо за советы/ответы. --------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке. |
|||
|
||||
| HackMan |
|
||||||||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
Ockonal,
всегда пожалуйста NaglfarNight,
или
Советую ознакомиться со статьёй "Различие между абсолютными и относительными путями. В файловой системе и на сайте" Если картинки с несколькими расширениям, тогда комбинировать надо так:
Да и вообще это всё можно красиво записать в две (ато и в одну
но лично я предпочитаю делать так, как написал раньше, расписывать действия. Это сообщение отредактировал(а) HackMan - 5.9.2008, 21:07 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
||||||||
|
|||||||||
| NaglfarNight |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 10.12.2007 Где: Россия, г. Нижний Новгород Репутация: нет Всего: 3 |
HackMan
Да, действительно коротко Ockonal |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |