<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Случайный выбор из массива в PHP

Случайный выбор из массива в PHP

У меня уже спрашивали пару раз, как я делаю случайный вывод цитат у себя на сайте в блоке "Умные цитаты". Далее мне удалось выяснить, что проблема здесь с непониманием людей, как вывести случайный элемент из массива в PHP. Задача простая, но тем не менее, раз возникают вопросы, то надо на них отвечать.

Сразу приведу код. Допустим, есть массив с набором цитат. И нужно выбрать одну случайную из них и вывести:

<?php
  $quotes = array(); // Инициализируем пустой массив
  $quotes[] = "Будьте внимательны к своим мыслям, они — начало поступков."; // Первая цитата
  $quotes[] = "Выживает не самый умный или самый сильный, а самый восприимчивый к переменам."; // Вторая цитата
  $quotes[] = "Жизнь — гора: поднимаешься медленно, спускаешься быстро."; // Третья цитата
  $quotes[] = "Люди не хотят быть богатыми, люди хотят быть богаче других."; // Четвёртая цитата
  $number = mt_rand(0, count($quotes) - 1); // Берём случайное число от 0 до (длины массива минус 1) включительно
  echo $quotes[$number]; // Выводим цитату
?>

Ключевой момент - это получение случайного числа. Всё, что нужно сделать, это задать правильные границы. Если нужно выбрать на всей длине массива случайный элемент, то это от 0 до (длины массива минус 1). А далее просто вытащить элемент из массива с полученным случайным индексом.

Что касается задачи с цитатами, то их лучше хранить в базе данных. В принципе, если сайт совсем простой, то можно и в текстовом файле. Но если в базе данных, то лучше использовать RAND() и LIMIT в SQL-запросе, чтобы Вы сразу получали единственную и случайную цитату из базы данных.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (20):

malina95 malina95 05.11.2012 15:13:12

Я правильно понимаю? $res = $mysqli->query("SELECT `text` FROM `citata` ORDER BY RAND() LIMIT 1"); $arr = $res->fetch_assoc(); echo $arr['text'];

Ответить

Admin Admin 05.11.2012 15:51:26

Да, всё правильно.

Ответить

(Алекс) (Алекс) 06.04.2014 16:48:08

Я не могу понять, а зачем от count($quotes) отнимать 1? Ведь тогда получается, что номер самой последней цитаты мы не принимаем в счет.

Ответить

lion337 lion337 05.11.2012 20:41:06

Не рекомендовал бы использовать ORDER BY RAND(), это немного тормозит сайт. Данная функция ускорит данный запрос: function getCitata(){ $mysqli = conectDB(); $offset_result = $mysqli->query("SELECT MIN(`id`) AS min, MAX(`id`) AS max FROM citata"); $offset_row = mysqli_fetch_object($offset_result); $RID = mt_rand($offset_row->min,$offset_row->max); $res_ad = $mysqli->query("SELECT text FROM citata WHERE id >= ".$RID." LIMIT 1"); $row_ad = $res_ad->fetch_assoc(); closeDB($mysqli); echo $row_ad['text']; }

Ответить

kep kep 17.01.2013 01:19:02

Подскажите куда надо вставлять это код? И еще можно ли сделать что бы при нажатие кнопки текст менялся, если да то напишите))) p.s. Можно по подробней только) спс.

Ответить

Admin Admin 17.01.2013 04:25:19

Вопрос некорректный, рекомендую посмотреть вот этот курс: http://srs.myrusakov.ru/freephp

Ответить

kep kep 17.01.2013 13:16:37

У меня мобильный интернет и я не могу скачать видео урок( а в youtube есть видео урок?

Ответить

Admin Admin 17.01.2013 15:47:12

В youtube нет, но с мобильным Интернетом и там не удастся посмотреть.

Ответить

21nazar12 21nazar12 05.11.2012 20:35:07

А это можно сделать при помощи HTML или JS?

Ответить

Admin Admin 05.11.2012 22:24:26

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

Ответить

21nazar12 21nazar12 06.11.2012 17:14:29

Можете привести скрипт?

Ответить

Admin Admin 06.11.2012 18:37:04

Там есть функция Math.random(), вот её и используйте. А с массивом Вы обязаны уметь работать, а если не умеете, то тогда изучайте JS с нуля.

Ответить

21nazar12 21nazar12 06.11.2012 21:49:19

Ясно, спасибо.

Ответить

malina95 malina95 20.01.2013 23:22:23

Михаил, напишите пожалуйста статью а лучше скрипт полной статистики сайта на PHP и MySQL, я вас очень прошу

Ответить

Admin Admin 21.01.2013 10:08:30

Постараюсь что-нибудь придумать, хотя идеальную статистику невозможно написать.

Ответить

(Алекс) (Алекс) 06.04.2014 16:46:20

Михаил, если такой проект у Вас будет, дадите ссылку.)

Ответить

korjik korjik 01.02.2013 23:01:20

Михаил, а нужно делать unset для массива? после вывода?

Ответить

Admin Admin 02.02.2013 10:55:31

Если он не нужен больше, то можно, хотя никто это не делает, а если потребуется, то нет.

Ответить

sveta-63 sveta-63 15.10.2014 17:44:07

смотрите, я правильно поняла? то есть в данном случае получается такой код: <?php $quotes = array(); $quotes[] = "Будьте внимательны к своим мыслям, они — начало поступков."; $quotes[] = "Выживает не самый умный или самый сильный, а самый восприимчивый к переменам."; $quotes[] = "Жизнь — гора: поднимаешься медленно, спускаешься быстро."; $quotes[] = "Люди не хотят быть богатыми, люди хотят быть богаче других."; // $number = mt_rand(0, count($quotes) - 3); echo $quotes[$number]; ?>

Ответить

VolodinAS VolodinAS 19.05.2017 14:05:39

А чем Вам не нравится array_shuffle()? Перемешали массив, выбрали нулевой элемент...

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.