X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> На счет функции rand в php
Vaz-Tez
Vaz-Tez
Topic Starter сообщение 25.11.2008, 18:24; Ответить: Vaz-Tez
Сообщение #1


Web мастер
******

Группа: Banned
Сообщений: 1059
Регистрация: 11.5.2008
Из: Иваново
Поблагодарили: 145 раз
Репутация:   43  


Вот есть у меня 8-мь картинок с именами файлов:1.jpg, 2.jpg, 3.jpg....8.jpg. И нужно мне выводить на странице только 3 фотки, но при том, что бы они не повторялись.
Я сделал так:
<?php
$p1=rand(1, 8);
$p2=rand(1, 8);
$p3=rand(1, 8);
echo "<img src=\"pic/".$p1.".jpg\" width=\"220\"  alt=\"\" />";
echo "<img src=\"pic/".$p2.".jpg\" width=\"220\"  alt=\"\" />";
echo "<img src=\"pic/".$p3.".jpg\" width=\"220\"  alt=\"\" />";
?>

Но как понимаете, переодически, на странице фотки повторяются. Вот как сделать, что бы фотографии не повторялись?


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Content-Master
Content-Master
сообщение 25.11.2008, 18:39; Ответить: Content-Master
Сообщение #2


Участник
***

Группа: User
Сообщений: 140
Регистрация: 28.8.2008
Из: Украина
Поблагодарили: 25 раз
Репутация:   3  


Проверять $p1 <> $p2 <> $p3 и если есть совпадения опять random

Сообщение отредактировал Content-Master - 25.11.2008, 18:40


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vader
Vader
сообщение 25.11.2008, 18:46; Ответить: Vader
Сообщение #3


The Power of the Dark Side
****

Группа: User
Сообщений: 375
Регистрация: 25.7.2008
Из: Самара
Поблагодарили: 170 раз
Репутация:   29  


А еще проще создать массив с числовыми индексами и значениями из названия файлов. Затем его перемешать (http://ru2.php.net/shuffle) и взять первые три индекса.


p.s. Повторный rand не гарантирует, что число изменится, он может сгенерировать опять его же, хоть вероятность и низка. В таком случае вообще придется использовать while.

Сообщение отредактировал Vader - 25.11.2008, 18:48
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Content-Master
Content-Master
сообщение 25.11.2008, 18:50; Ответить: Content-Master
Сообщение #4


Участник
***

Группа: User
Сообщений: 140
Регистрация: 28.8.2008
Из: Украина
Поблагодарили: 25 раз
Репутация:   3  


В цикле, пока совпадать не будут, это, имхо, более простой вариант, хотя с массивом - красивее.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
newdee
newdee
сообщение 25.11.2008, 18:50; Ответить: newdee
Сообщение #5


Участник
***


Группа: User
Сообщений: 188
Регистрация: 11.2.2008
Поблагодарили: 44 раза
Репутация:   11  


а если картинки беруца из базы то можно изменить запрос, добавив к нему
ORDER BY RAND

зы. с лимитом естественно

Сообщение отредактировал newdee - 25.11.2008, 18:51
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Lordie
Lordie
сообщение 25.11.2008, 19:09; Ответить: Lordie
Сообщение #6


Топовый постер
*******


Группа: Active User
Сообщений: 4737
Регистрация: 11.5.2008
Поблагодарили: 966 раз
Репутация:   153  


Опа.. оказывается, топик есть... Похоже, уже помог smile.gif


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vaz-Tez
Vaz-Tez
Topic Starter сообщение 25.11.2008, 19:12; Ответить: Vaz-Tez
Сообщение #7


Web мастер
******

Группа: Banned
Сообщений: 1059
Регистрация: 11.5.2008
Из: Иваново
Поблагодарили: 145 раз
Репутация:   43  


newdee, это слишком просто.
Content-Master, не вариант.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vaz-Tez
Vaz-Tez
Topic Starter сообщение 25.11.2008, 19:14; Ответить: Vaz-Tez
Сообщение #8


Web мастер
******

Группа: Banned
Сообщений: 1059
Регистрация: 11.5.2008
Из: Иваново
Поблагодарили: 145 раз
Репутация:   43  


Lordie, угумс, помог smile.gif твой способ оригинальнее не придумаешь и прос до безобразия wink.gif


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Lordie
Lordie
сообщение 25.11.2008, 19:15; Ответить: Lordie
Сообщение #9


Топовый постер
*******


Группа: Active User
Сообщений: 4737
Регистрация: 11.5.2008
Поблагодарили: 966 раз
Репутация:   153  


(Vatanaba @ 25.11.2008, 16:14) *
Lordie, угумс, помог smile.gif твой способ оригинальнее не придумаешь и прос до безобразия wink.gif

Краткость - сестра таланта © понятия не имею
Топик клоузд
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Веб-разработка на php, nodejs, js.
Кастом движки, парсеры, чеккеры и т.д.
0 UmbrellaCoders 95 Сегодня, 4:18
автор: UmbrellaCoders
Открытая тема (нет новых ответов) Нужен программер php
Страницу надо на сайт
3 AlinaGreen 347 Вчера, 16:15
автор: AlinaGreen
Открытая тема (нет новых ответов) php(yii2) developer, ищу постоянную удаленную работу
0 Kumidzeke 304 5.12.2016, 23:13
автор: Kumidzeke
Открытая тема (нет новых ответов) Напишу интересные php скрипты
первые 5 заказов за пол цены
20 Ozim 3873 28.11.2016, 23:58
автор: wep
Открытая тема (нет новых ответов) Требуется: Адекватный PHP, JQuery программист
заказов много разных, постоянных, плюсом будет знание Bitrix, WP
0 Rambler 324 23.11.2016, 10:21
автор: Rambler


 



RSS Текстовая версия Сейчас: 10.12.2016, 5:01
Дизайн