Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 04.02.2009 12:00

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 04.02.2009 12:15

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







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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
Príspevok Napísal autor témyOffline : 04.02.2009 13:10

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 04.02.2009 13:44

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);







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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
Príspevok Napísal autor témyOffline : 04.02.2009 14:26

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 04.02.2009 14:33

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...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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
Príspevok Napísal autor témyOffline : 04.02.2009 14:35

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 04.02.2009 14:38

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







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
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
Príspevok Napísal autor témyOffline : 04.02.2009 14:46

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
Bydlisko: PD
Príspevok NapísalOffline : 04.02.2009 15:44

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
Bydlisko: Houston, Texas
Príspevok NapísalOffline : 22.02.2009 14:56

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
Bydlisko: PD
Príspevok NapísalOffline : 22.02.2009 15:30

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
Bydlisko: Houston, Texas
Príspevok NapísalOffline : 22.02.2009 16:02

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 22.02.2009 16:05

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







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok NapísalOffline : 22.02.2009 16:18

jo ale ja sa do cyklov nevyznám


Offline

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

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 22.02.2009 16:38

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ý: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 22.02.2009 16:41

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


Offline

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

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 22.02.2009 16:58

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...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Odpovedať na tému [ Príspevkov: 18 ] 


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

1193

16.02.2009 10:28

markog Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Generator map stranok - sitemap generator

v Internetový marketing, SEO, reklama

1

2485

16.05.2010 21:50

Antuanet Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

0

560

01.09.2008 9:08

daoc Zobrazenie posledných príspevkov

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

261

26.12.2013 0:37

Suit Zobrazenie posledných príspevkov

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

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

3

1006

08.03.2013 17:37

BX Zobrazenie posledných príspevkov

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

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

1

574

22.02.2011 15:13

Fico Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

2

677

01.03.2010 21:11

vama Zobrazenie posledných príspevkov

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

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

26

931

28.03.2017 21:15

BX Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

3

867

10.03.2011 20:37

vama Zobrazenie posledných príspevkov

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

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

12

2306

24.10.2010 13:00

coldak Zobrazenie posledných príspevkov

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

v PHP, ASP

2

616

31.08.2009 10:42

László145 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Porovnávanie a usporiadanie čísiel

v Ostatné programy

0

775

12.08.2008 19:13

MANIAC Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PC na chrumanie cisiel okolo 1500e

v PC zostavy

19

1389

25.12.2009 0:04

Matias555 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zaokruhlovanie cisiel na 2 desatinne miesta

v PHP, ASP

2

7746

08.07.2008 13:25

Broko71 Zobrazenie posledných príspevkov

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

v Elektronika

1

815

20.05.2009 13:40

vojtech Zobrazenie posledných príspevkov

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

v Ostatné programy

1

588

30.12.2009 12:44

armin.owen Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra