Autor Zpráva
oogi
Profil *
Potřeboval bych vygenerovat řetězec čísel 1-x v náhodném pořadí, a aby pak šly přiřadit do proměnných.

Tedy něco jako udělá databáze ve který jsou po sobě jdoucí čísla 1-x po příkazu select * order by RAND()

např.:5-19-10-12-15-30-.......-x-.......-x-té číslo
minimal
Profil *
blizko :-)

$from=1;
$upto=1000000;

$random=rand($from,$upto);
oogi
Profil *
a nevygeneruje to jenom jedno čislo?
minimal
Profil *
<?php

$from=1;
$upto=100;
$random=array();

for($i=$from;$i<=$upto;$i++)
{
$random[$i]=mt_rand($from,$upto);
}

echo'<pre>'."\n";
print_r($random);
echo'</pre>'."\n";
?>
koudi
Profil
generace čísel pomocí php
Mimochodem je to spíš generování, než generace.

jinak bych to řešil asi takhle:

$array = range(0, 100);
shuffle($array);
oogi
Profil *
koudi
To nefunguje, hazi mi to array...
oogi
Profil *
minimal

To druhý řešení vypadá celkem použitělně. Dik.
oogi
Profil *
minimal

Hmm, tak je to asi nepouzitelny.. ta cisla se tam objevuji vicekrat, ja potrebuju aby kazde cislo cislo bylo prirazenou jednou....
oogi
Profil *
no tak nejak to jit musi....
koudi
Profil
To nefunguje, hazi mi to array...
A co jinýho jsi čekal, když je to pole?? Zkus si najít co to je pole a jak se s ním pracuje.
oogi
Profil *
A co jinýho jsi čekal, když je to pole?? Zkus si najít co to je pole a jak se s ním pracuje.
Hmm, já vím co to je pole, ale asi sem tam předtim něco zblbnu. Teď už to funguje. Dík.
oogi
Profil *
Jen mensi problem... kdyz na tu stranku jdu pres odkaz znova tak je to uplne stejne rozmisteny... po zaktualizovani stranky se to zmeni... jak to ošetřit?
oogi
Profil *
Nevite někdo???
nightfish
Profil
oogi
jaká verze? od PHP 4.2.0 už není potřeba ručně generátoru zadat počáteční hodnotu
tzn. měl by to seřadit pokaždé různě
pokud máš verzi PHP starší než 4.2.0, tak před shuffle přidej
srand((float)microtime() * 1000000);
oogi
Profil *
ono se rozřadí různě, ale až po aktualizování stránnky... není tam nějakej problém s cookies, nebo něčim co uchová to seřazení v paměti?
Acci
Profil
oogi
Nejspíš problém s cache. Dej na začátek souboru následující kód:

header('Cache-Control: no-cache');
header('Pragma: no-cache');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
oogi
Profil *
Acci
Trochu to pomohlo, ale stejne se jedna kombinace opakuje nejak casto.. snad to byla jen nahoda...
Toto téma je uzamčeno. Odpověď nelze zaslat.