[ Príspevkov: 18 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97 | 97
NapísalOffline : 04.02.2009 12:00 | [VYRIESENE] Generator nahodnych cisiel

Snazim sa spravit generator nahodnych cisel, ktore su ukladane do DB. Spravil som nieco taketo:
Kód:
$prvky= array("1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g", "h","i","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z");
$velkost="15";
$kod="";
for ($i=0 ;$i<=$velkost-1 ;$i++)
{
$vyber=rand(0, count($prvky)-1);
$kod.=$prvky[$vyber];

}

$cislo="$kod";


$vyber = MySQL_Query("select * from kluce WHERE kod='$cislo'");
$riadkov = mysql_num_rows($vyber);

if ($riadkov==0)
{
echo "Tu by malo vypisat nahodny kod. Napr: $cislo</br>";
}

else
{
echo "Cislo uz existuje.</br>
Co mam sem dopisat, aby generovalo nove cislo a znova overilo ci sa uz v DB nenachadza?? ";
}


No a potreboval by som upravit tu podmienku else tak, aby ked uz nahodne cislo existuje, tak aby znova generovalo dalsie cislo. Tzn..Aby som predisiel tomu,ze sa v DB budu nachadzat rovnake nahodne cisla..Ale za svet neviem ako v tej podmienke else pokracovat..

//presunute do novej temy (stenley)


Offline

Správca fóra
Správca fóra
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 04.02.2009 12:15 | [VYRIESENE] Generator nahodnych cisiel

staci ti pouzit cyklus while (prip. do-while), ktory sa bude dovtedy opakovat, kym sa nevygeneruje kod, ktory v db este nie je...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97 | 97
Napísal autor témyOffline : 04.02.2009 13:10 | [VYRIESENE] Generator nahodnych cisiel

No tiez ma prve napadlo riesit to cez cyklus. A mal som to takto...
Kód:
$prvky= array("1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g", "h","i","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z");
$velkost="15";
$kod="";
for ($i=0 ;$i<=$velkost-1 ;$i++)
{
$vyber=rand(0, count($prvky)-1);
$kod.=$prvky[$vyber];

}

$cislo="$kod";


$vyber = MySQL_Query("select * from kluce WHERE kod='$cislo'");
$riadkov = mysql_num_rows($vyber);

while ($riadkov !=0)
{
$kod2="";
for ($i=0 ;$i<=$velkost-1 ;$i++)
{
$vyber2=rand(0, count($prvky)-1);
$kod2.=$prvky[$vyber2];
$cislo="$kod2";
}
}


echo "Nahodne vybrane cislo:$cislo .</br> ";

Lenze dopracoval som sa k tomu, ze ked narazilo na rovnake cislo, tak sa cely skript zacyklil. Cize stranku ani nenacitalo..len nacitavalo.. :loony:


Offline

Správca fóra
Správca fóra
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 04.02.2009 13:44 | [VYRIESENE] Generator nahodnych cisiel

lenze ty ten cely proces generovania kodu a overovania v db musis mat v cykle, lebo inak ti to nepojde korektne...
Kód:
do {
   $kod = generujKod();
   if(!inDB($kod)) {
      break;   
   }
} while(1);


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97 | 97
Napísal autor témyOffline : 04.02.2009 14:26 | [VYRIESENE] Generator nahodnych cisiel

No tak som to upravil podla tvojho navodu..Dufam, ze to mam OK.. :loony:

Kód:
do {

$prvky= array("h","m");
$velkost="15";
$kod="";
for ($i=0 ;$i<=$velkost-1 ;$i++)
{
$vyber=rand(0, count($prvky)-1);
$kod.=$prvky[$vyber];

}

$cislo="$kod";

$vyber = MySQL_Query("select * from kluce where kod='$cislo'");
$riadkov = mysql_num_rows($vyber);
if ($riadkov==0)
{
break;
}

} while(1);

echo " Vlozeny kód: $kod </br> ";


Offline

Správca fóra
Správca fóra
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 04.02.2009 14:33 | [VYRIESENE] Generator nahodnych cisiel

inak, nebolo by lepsie generovat znaky cez chr() a pre nahodnu este neobsadenu poziciu (a nie zaradom ako mas teraz) vo vyslednom kode? predsa len by to bol o nieco lepsi generator...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97 | 97
Napísal autor témyOffline : 04.02.2009 14:35 | [VYRIESENE] Generator nahodnych cisiel

Cez ake chr() ?? Nerozumiem celkom..Ako to myslis??


Offline

Správca fóra
Správca fóra
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 04.02.2009 14:38 | [VYRIESENE] Generator nahodnych cisiel

to je len taky napad na zlepsenie, mozno to vyuzijes, mozno nie, ale proste by si nemal stanovene pole znakov, z ktorych sa ma poskladat vysledny kod, ale len rozsah, z ktoreho sa maju znaky generovat pomocou chr


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97 | 97
Napísal autor témyOffline : 04.02.2009 14:46 | [VYRIESENE] Generator nahodnych cisiel

No urcite je to lepsie, ale absolutne netusim aku funkciu chr() pouzit resp. aplikovat na moj pripad. Sice som to pozrel na http://sk.php.net/manual/en/function.chr.php ale som z toho hotovy talian :shock:


Offline

Užívateľ
Užívateľ
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 22.11.07
Príspevky: 1368
Témy: 22 | 22
Bydlisko: PD
NapísalOffline : 04.02.2009 15:44 | [VYRIESENE] Generator nahodnych cisiel

Na pismena mozes pouzit aj range(a, z);
Pripadne netreba mat pole, staci ti obycajny string a str_shuffle();.

No najlepsi bude stenleyho postup, potrebujes len ASCII tabulku, kde si najdes hodnoty pociatocneho znaku a koncoveho, napr. echo chr(rand(97, 122)); vrati lubovolny znak od a po z.

ASCII table


_________________
Koreňom všetkého zla je nedostatok poznania.
Offline

Užívateľ
Užívateľ
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
NapísalOffline : 22.02.2009 14:56 | [VYRIESENE] Generator nahodnych cisiel

a to keby chcem mám ako spraviť?

bo potrebujem taký generátor ale musí mať jednu podmienku, musí obsahovať aspoň 1 nečíselný znak
preto by som bol rád keby tu niekto spravil ten generátor
PLS kuknite sa na ti niekto


Offline

Užívateľ
Užívateľ
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 22.11.07
Príspevky: 1368
Témy: 22 | 22
Bydlisko: PD
NapísalOffline : 22.02.2009 15:30 | [VYRIESENE] Generator nahodnych cisiel

Tvoju podmienku splna napr. aj toto
Kód:
echo chr(rand(97, 122)) . rand(0, 100);


_________________
Koreňom všetkého zla je nedostatok poznania.
Offline

Užívateľ
Užívateľ
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
NapísalOffline : 22.02.2009 16:02 | [VYRIESENE] Generator nahodnych cisiel

ok ale ako spraviť ten cyklus?
že keď už exsistuje tak vygeneruje nové?


Offline

Správca fóra
Správca fóra
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.02.2009 16:05 | [VYRIESENE] Generator nahodnych cisiel

princip mas uz uvedeny vyssie http://www.pcforum.sk/post-vp541801.html#541801


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
NapísalOffline : 22.02.2009 16:18 | [VYRIESENE] Generator nahodnych cisiel

jo ale ja sa do cyklov nevyznám


Offline

Čestný člen
Čestný člen
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 22.02.2009 16:38 | [VYRIESENE] Generator nahodnych cisiel

Tomu stenleyho kodu nerozumies?
Kód:
do {
   $kod = generujKod();
   if(!inDB($kod)) {
      break;   
   }
} while(1);


do {} while(1) je nekonecny cyklus - pretoze podmienka (1) plati vzdy. A pomocou
if(!inDB($kod)) {
break;
}
zaistis, ze ked sa kod nenachadza v DB, cyklus sa ukonci.


Offline

Užívateľ
Užívateľ
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 22.02.2009 16:41 | [VYRIESENE] Generator nahodnych cisiel

Nebolo by to jednoduchšie takto:
Kód:
do {
   $kod = generujKod();
} while(!inDB($kod));
?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Správca fóra
Správca fóra
[VYRIESENE] Generator nahodnych cisiel

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.02.2009 16:58 | [VYRIESENE] Generator nahodnych cisiel

v tejto zjednodusenej verzii aj hej, lenze vo vetve if by mohlo byt este pridanie kodu do db a vsetko s tym suvisiace, a preto to nie je tak spravene, ako pises... ale to mas v podstate jedno, je to len prototyp demonstrujuci princip, a tak si to moze spravit kazdy ako len chce...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 18 ] 


[VYRIESENE] Generator nahodnych cisiel



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

SW generator nahodnych cisel

v Ostatné programy

0

978

16.02.2009 10:28

markog

V tomto fóre nie sú ďalšie neprečítané témy.

Generator map stranok - sitemap generator

v Internetový marketing, SEO, reklama

1

2227

16.05.2010 21:50

Antuanet

V tomto fóre nie sú ďalšie neprečítané témy.

viac nahodnych obrazkov

v JavaScript, VBScript, Ajax

0

367

01.09.2008 9:08

daoc

V tomto fóre nie sú ďalšie neprečítané témy.

Stráca signál v náhodných intervaloch

v nVidia grafické karty

1

82

26.12.2013 0:37

Suit

V tomto fóre nie sú ďalšie neprečítané témy.

Vyber nahodnych cisel bez opakovania

v Assembler, C, C++, Pascal, Java

3

468

08.03.2013 17:37

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Usporiadanie čísiel

v Assembler, C, C++, Pascal, Java

26

360

28.03.2017 21:15

BX

V tomto fóre nie sú ďalšie neprečítané témy.

prevod cisiel

v Assembler, C, C++, Pascal, Java

1

385

22.02.2011 15:13

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

prevod cisiel

v Delphi, Visual Basic

2

412

01.03.2010 21:11

vama

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnanie reálnych čísiel

v Delphi, Visual Basic

3

600

10.03.2011 20:37

vama

V tomto fóre nie sú ďalšie neprečítané témy.

JAVA - triedenie cisiel

v Assembler, C, C++, Pascal, Java

12

1418

24.10.2010 13:00

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

Porovnávanie a usporiadanie čísiel

v Ostatné programy

0

419

12.08.2008 19:13

MANIAC

V tomto fóre nie sú ďalšie neprečítané témy.

porovnanie dvoch cisiel navzajom

v PHP, ASP

2

345

31.08.2009 10:42

László145

V tomto fóre nie sú ďalšie neprečítané témy.

zaokruhlovanie cisiel na 2 desatinne miesta

v PHP, ASP

2

5333

08.07.2008 13:25

Broko71

V tomto fóre nie sú ďalšie neprečítané témy.

PC na chrumanie cisiel okolo 1500e

v PC zostavy

19

896

25.12.2009 0:04

Matias555

V tomto fóre nie sú ďalšie neprečítané témy.

generator

v Elektronika

1

540

20.05.2009 13:40

vojtech

V tomto fóre nie sú ďalšie neprečítané témy.

WiFi generator

v Ostatné programy

1

376

30.12.2009 12:44

armin.owen



© 2005 - 2017 PCforum, edited by JanoF