[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Случайная цитата под названием сайта
exotica
Думал над цитатами и пришел к такому варианту что их может быть много и вроде бы и все охото видеть. Чтож дурная голова рукам покоя не дает и собственно накостылял такой вариант.
<?php
error_reporting(E_ALL);

$savedquotes = array(
0 => 'quote #1',
1 => 'quote #2',
2 => 'quote #3',
3 => 'quote #4',
4 => 'quote #5',
);

$quotescount = count($savedquotes) - 1;
$quotenumber = rand(0, $quotescount);


echo htmlspecialchars($savedquotes[$quotenumber]);
?>

Все здорово, все работает. Но каждый раз лезть в скрипт чтоб добавить или удалить цитату как то не круто, поэтому возникает вопрос откуда лучше дергать цитаты из .txt файла или из БД. Вариант с БД мне лично нравится больше т.к. мне привычней работать с ней чем с файлами. Но опять же это лишний запрос к БД при каждом(!) переходе или обновлении страницы на сайте. Но начну я все же с него, чисто интереса ради:
<?php
error_reporting(E_ALL);

$link = mysqli_connect(
'localhost',
'root',
'',
'storage');
if (!$link) {
printf("Невозможно подключиться к базе данных. Код ошибки: %s\n", mysqli_connect_error());
exit;
}

$SqlQuery = 'SELECT `id`,`text` FROM `quotes`';
$QueryResult = mysqli_query($link, $SqlQuery);

$quotes = array();
while($ResultArray = mysqli_fetch_assoc($QueryResult))
{
$quotes[] = $ResultArray['text'];
}

$quotescount = count($quotes) - 1;
$quotenumber = rand(0, $quotescount);


echo htmlspecialchars($quotes[$quotenumber]);
?>

P/S: Тут важно заметить что в этом варианте исполнения будет чертовски просто редактировать цитаты из админки, да и вообще производить с ними разные действия. (ну возможно для меня проще, так как не храню ничего в файлах кроме статичных данных типа мета)

Ладно продолжим. Хранение в .txt файле. Кроме как использовать serialize() я ничего не придумал и запихнул в .txt файл ранее запрошенный из базы массив:
  $file = 'quotes.txt';
$content = file_get_contents($file);
$content .= serialize($quotes);
file_put_contents($file, $content);

ну а дальше дело за малым, собственно достать посчитать выбрать случайную цитату и вывести:
<?php
error_reporting(E_ALL);

$file = 'quotes.txt';
$content = file_get_contents($file);
$quotes = unserialize($content);

$quotescount = count($quotes) - 1;
$quotenumber = rand(0, $quotescount);

echo htmlspecialchars($quotes[$quotenumber]);
?>


Ну вот собственно и все что мне пришло в голову в пол первого ночи по местному. Все три варианта мне не нравятся, поэтому решил спросить что я еще упустил. Как получить вариант который можно легко редактировать, но и не нагружать сервер лишними действами.

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.