Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie kolejny, tylko losowy
Forum PHP.pl > Forum > Gotowe rozwiązania
Kano
Mam skrypt (http://www.emacs.dk/quote/), który codziennie wybiera nowy plik i wstawia go na stronę (www.grupaphp.com -> Wiersz dnia)

Czy ktoś wie jaki paramentr zmienić/ustawić w bazie danych, żeby był wybierany nie kolejny, tylko losowy plik. Wprowadziłem 40 plików, nazwałem je a001, a002, a003 itd. Skrypt codziennie "wyciąga" nowy plik, ale robi to w kolejności, tzn. dziś idzie a001, jutro a002 i tak aż do a 040. Chciałbym, żeby te pliki były brane losowo (np. a023, potem a007).

O php nie mam zielonego pojęcia, więc jeżeli sprawa nie jest skomplikowana, prosiłbym o podanie konkretnego polecenia i konkretnego miejsca, w które trzeba wprowadzić zmianę.

Pozdrawiam,
Kano
Denver
Jesli chcesz wybrac losowy rekord z bazy danych, to proponuje tak:

[sql:1:435f21619d]SELECT * FROM tabela ORDER BY RAND() LIMIT 1[/sql:1:435f21619d]
GrZeCh
Witam!
Szukalem bardzo podobnego rozwiazania jak kolega Kano. Jednak cytowany przez Ciebie KOD SQL mi nie dzialal (nie wiem czemu wlasciwie). Naszukalem sie w sieci innych rozwiazan i znalazlem cos takiego:

[sql:1:3b89b645f3]SELECT *
FROM tabela
ORDER BY rand(" . time() . " * " . time() . ")
LIMIT 1[/sql:1:3b89b645f3]

.. dzialac to dziala ale czy by mogl mi ktos wytlumaczyc na czym to polega?
tiraeth
Polecam zrobić plik quotes.php a w nim:

[php:1:b6a55d72d3]<?php
$QuotesCat = "cytaty/";

function RandomQuote ($dirName)
{
$z = 0;
$Dir = opendir($dirName);
$a = 0;
while(($entry = readdir($Dir)) !== false)
{
if ($entry !== "." && $entry !== ".." && eregi(".dat", $entry) && $a<=4)
{
$a++;
$files[$z] = $entry;
$z++;
}
}
return $files;
closedir($Dir);
}


$Quotes = RandomQuote($QuotesCat);
if($Quotes[0] == "")
{
echo "Brak Cytatów!!";
}
else
{
sort($Quotes);
reset($Quotes);

$HowMany = count($Quotes)--;

$Randomize = rand(0, $HowMany);

echo $Quotes[$Randomize];
}
?>[/php:1:b6a55d72d3]

i później go includować do strony, na której mają być wyświetlone cytaty smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.