| | |
| Stránka: 1 z 1
| [ Príspevkov: 18 ] | |
Autor | Správa |
---|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 |
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)
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | Napísal autor témy newboy1: 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..
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | Napísal autor témy newboy1: 04.02.2009 14:26 | |
|
No tak som to upravil podla tvojho navodu..Dufam, ze to mam OK..
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> ";
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | Napísal autor témy newboy1: 04.02.2009 14:35 | |
|
Cez ake chr() ?? Nerozumiem celkom..Ako to myslis??
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 22.03.07 Prihlásený: 04.07.14 Príspevky: 344 Témy: 97 | |
Registrovaný: 22.11.07 Príspevky: 1368 Témy: 22 Bydlisko: PD | Napísal lio: 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. |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 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
|
|
Registrovaný: 22.11.07 Príspevky: 1368 Témy: 22 Bydlisko: PD | Napísal lio: 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. |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 22.02.2009 16:02 | |
|
ok ale ako spraviť ten cyklus?
že keď už exsistuje tak vygeneruje nové?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
_________________ 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 |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 22.02.2009 16:18 | |
|
jo ale ja sa do cyklov nevyznám
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 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.
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 22.02.2009 16:41 | |
|
Nebolo by to jednoduchšie takto: Kód: do { $kod = generujKod(); } while(!inDB($kod)); ?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
| Stránka: 1 z 1
| [ Príspevkov: 18 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| SW generator nahodnych cisel v Ostatné programy | 0 | 1193 | 16.02.2009 10:28 markog | | Generator map stranok - sitemap generator v Internetový marketing, SEO, reklama | 1 | 2485 | 16.05.2010 21:50 Antuanet | | viac nahodnych obrazkov v JavaScript, VBScript, Ajax | 0 | 560 | 01.09.2008 9:08 daoc | | Stráca signál v náhodných intervaloch v nVidia grafické karty | 1 | 261 | 26.12.2013 0:37 Suit | | Vyber nahodnych cisel bez opakovania v Assembler, C, C++, Pascal, Java | 3 | 1006 | 08.03.2013 17:37 BX | | prevod cisiel v Assembler, C, C++, Pascal, Java | 1 | 574 | 22.02.2011 15:13 Fico | | prevod cisiel v Delphi, Visual Basic | 2 | 677 | 01.03.2010 21:11 vama | | Usporiadanie čísiel v Assembler, C, C++, Pascal, Java | 26 | 931 | 28.03.2017 21:15 BX | | Porovnanie reálnych čísiel v Delphi, Visual Basic | 3 | 867 | 10.03.2011 20:37 vama | | JAVA - triedenie cisiel v Assembler, C, C++, Pascal, Java | 12 | 2306 | 24.10.2010 13:00 coldak | | porovnanie dvoch cisiel navzajom v PHP, ASP | 2 | 616 | 31.08.2009 10:42 László145 | | Porovnávanie a usporiadanie čísiel v Ostatné programy | 0 | 775 | 12.08.2008 19:13 MANIAC | | PC na chrumanie cisiel okolo 1500e v PC zostavy | 19 | 1389 | 25.12.2009 0:04 Matias555 | | zaokruhlovanie cisiel na 2 desatinne miesta v PHP, ASP | 2 | 7746 | 08.07.2008 13:25 Broko71 | | generator v Elektronika | 1 | 815 | 20.05.2009 13:40 vojtech | | WiFi generator v Ostatné programy | 1 | 588 | 30.12.2009 12:44 armin.owen |
| 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
|
|