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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: генератор id

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
cIIeIL
Отправлено: 06 Мая, 2011 - 11:47:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Апр. 2011  
Откуда: C:/server/


Помог: 1 раз(а)




ткните в статью или напишите плиз скрипт генерации id (числового). Закатив глазки


-----
конспи*ация , конспи*ация и еще раз конспи*ация
 
 Top
OrmaJever
Отправлено: 06 Мая, 2011 - 12:15:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1.   function gen_id($number)
  2.   {
  3.     $arr = array('1','2','3','4','5','6','7','8','9','0');
  4.     // Генерируем пароль
  5.     $id = "";
  6.  
  7.     for($i = 0; $i < $number; $i++)
  8.     {
  9.       // Вычисляем случайный индекс массива
  10.       $index = rand(0, count($arr) - 1);
  11.  
  12.       $id .= $arr[$index]; // дописываем новую цыфру
  13.     }
  14.     return $id;
  15.   }
  16. echo gen_id(5);

(Отредактировано автором: 06 Мая, 2011 - 12:16:01)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
cIIeIL
Отправлено: 06 Мая, 2011 - 12:17:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Апр. 2011  
Откуда: C:/server/


Помог: 1 раз(а)




о_О какая скорость.thank you

(Отредактировано автором: 06 Мая, 2011 - 12:20:28)



-----
конспи*ация , конспи*ация и еще раз конспи*ация
 
 Top
EuGen Администратор
Отправлено: 06 Мая, 2011 - 12:26:33
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




В приведенном примере выше нет проверки на уникальность. Если так, то можно просто
$id=rand(0, $max);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Crazy_maker
Отправлено: 06 Мая, 2011 - 22:33:13
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




EuGen Вы бы не могли полностью рассказать как работает оператор rand( ); и еще небольшая просьба напишите примерный скрипт без излишеств для галереи с фотографиями и текстом, мне чисто для примера. Не понял
 
 Top
molchun201
Отправлено: 06 Мая, 2011 - 22:38:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)





Жмякай F5 и радуйся Радость

а вообще советуют mt_rand()

(Отредактировано автором: 06 Мая, 2011 - 22:40:28)



-----
Обрамляйте код тегами и читайте
 
 Top
EuGen Администратор
Отправлено: 06 Мая, 2011 - 22:38:30
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Так а что тут рассказывать? Генерирует случайное число. Если параметры не заданы - то от 0 до RAND_MAX (см. ссылку). Если заданы - то в заданных границах:
http://php.su/functions/?rand


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
energ
Отправлено: 07 Мая, 2011 - 12:55:19
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Crazy_maker пишет:
EuGen Вы бы не могли полностью рассказать как работает оператор rand( ); и еще небольшая просьба напишите примерный скрипт без излишеств для галереи с фотографиями и текстом, мне чисто для примера.

в функции ранд перводе чило от какого генить 2 до какого, т.е. rand(1,5) - генить случайное от 1 до 5, mt_rand более быстр т.к. использует другую систему генирации
 
 Top
EuGen Администратор
Отправлено: 07 Мая, 2011 - 14:49:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




EuGen пишет:
Если параметры не заданы

А про случай с параметрами я рассказал.
mt_rand Я бы сказал лучше тем, что дает более правильное распределение случайного числа, так как использует лучшие числовые характеристики случайных величин.
В быстроте, уверяю, разницу заметить очень сложно (если, конечно, не вызывать генератор 100000000 раз)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Shtorm_sai
Отправлено: 07 Мая, 2011 - 19:23:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Янв. 2011  
Откуда: Новосибирск, Россия


Помог: 0 раз(а)




Можно так

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. function make_code($length=6) {
  3.     $chars = "0123456789";
  4.     $code = "";
  5.     $clen = strlen($chars) - 1;  
  6.     while (strlen($code) < $length) {
  7.            $code .= $chars[mt_rand(0,$clen)];  
  8.    }
  9.    return $code;
  10. }
  11.  


в переменную $chars можно подставить ещё буквы. Будет буквенно-цифреный id. 8)
 
 Top
zverko
Отправлено: 08 Мая, 2011 - 01:29:26
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Март 2011  


Помог: 1 раз(а)




cIIeIL извини если не в тему.

Но если тебе надо писать к примеру юзерастов в mysql то лучше использовать
SELECT MAX(id) FROM table_name и потом просто прибавиит 1 )))

Просто были случаи когда народ пробовал id юзеров по рандому делать, смешно выходит))
 
 Top
Мелкий Супермодератор
Отправлено: 08 Мая, 2011 - 09:35:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




zverko пишет:
Но если тебе надо писать к примеру юзерастов в mysql то лучше использовать

То необходимо использовать auto_increment.


-----
PostgreSQL DBA
 
 Top
cIIeIL
Отправлено: 08 Мая, 2011 - 11:23:47
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Апр. 2011  
Откуда: C:/server/


Помог: 1 раз(а)




Не понял мне вообще id для статей нужен Не понял


-----
конспи*ация , конспи*ация и еще раз конспи*ация
 
 Top
molchun201
Отправлено: 08 Мая, 2011 - 11:34:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)




cIIeIL так а не проще ли статьи держать в БД и оттуда их по id (который auto_increment) выводить? Однако


-----
Обрамляйте код тегами и читайте
 
 Top
cIIeIL
Отправлено: 08 Мая, 2011 - 11:48:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Апр. 2011  
Откуда: C:/server/


Помог: 1 раз(а)




в бд не шарю. вот если кто-нибудь дал ссылку к статье как устанавливат настраивать и.т.д.


-----
конспи*ация , конспи*ация и еще раз конспи*ация
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB