Випадковий вибір з масиву в PHP

масиву

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

Відразу наведу код. Припустимо, є масив із набором цитат. І потрібно вибрати одну випадкову з них та вивести:

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

Що ж до завдання з цитатами, їх краще зберігати у базі даних. В принципі, якщо сайт дуже простий, то можна і в текстовому файлі. Але якщо в базі даних, то краще використовуватиRAND()іLIMITуSQL-запиті, щоб Ви одразу отримували єдину та випадкову цитату з бази даних.

Додайте до мене в друзіВКонтакте: http://vk.com/myrusakov. Якщо Ви хочете дати оцінку мені та моїй роботі, то напишіть її в моїй групі: http://vk.com /rusakovmy.

Запропонуйте цю статтю друзям:

Якщо Вам сподобався сайт, розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):

Вона виглядає ось так:

  • BB-код посилання для форумів (наприклад, можете поставити його у підписі):
  • Коментарі ( 20 ):

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

    Так все правильно.

    Я не можу зрозуміти, а навіщо від count($quotes)забирати 1? Адже тоді виходить, що номер останньої цитати ми не беремо до уваги.

    Чи не рекомендував би використовувати ORDER BY RAND(), це трохи гальмує сайт. Ця функція прискорить цей запит: function getCitata()< $ mysqli = conectDB (); $offset_result = $mysqli->query("SELECT MIN(` >min, $offset_row->max); $res_ad = $mysqli->query("SELECT text FROM citata WHERE id >= ".$ R >fetch_assoc();closeDB($mysqli);echo $row_ad['text'];

    Підкажіть, куди треба вставляти цей код? І ще можна зробити що б при натисканні кнопки текст змінювався, якщо так напишіть))) p.s. Можна по детальніше тільки) спс.

    Питання некоректне, рекомендую подивитися ось цей курс: http://srs.myrusakov.ru/freephp

    У YouTube немає, але з мобільним Інтернетом і там не вдасться подивитися.

    А це можна зробити за допомогою HTML чи JS?

    У JS так, тільки зберігати цитати треба буде прямо у вихідному коді сторінки.

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

    Там є функція Math.random(), ось її й використовуйте. А з масивом Ви повинні вміти працювати, а якщо не вмієте, тоді вивчайте JS з нуля.

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

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

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

    Михайле, а чи потрібно робити unset для масиву? після виведення?

    Якщо він не потрібний більше, то можна, хоча ніхто це не робить, а якщо буде потрібно, то ні.

    дивіться, чи я правильно зрозуміла? тобто в даному випадку виходить такий код:

    Чим Вам не подобається array_shuffle()? Перемішали масив, вибрали нульовий елемент.