I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ja, med SET kan du med et felt repræsentere tallene fra 1-16 binært, så når du skal tjekke de 4 rigtige behøver du bare at tjekke et felt for den binære værdi.
Jeg kan da prøve. SET kan indeholde op til 64 værdier. Disse er repræsenteret binært. Det vil sige med tallene: 1,2,4,8,16,32,64,128,osv... Hvis fx tallene fra 1-4 skal tjekkes binært tjekker man summen af de binære værdier. Altså 1+2+4+8=15, "SELECT * FROM tabel WHERE tal & 15"
Her et eksempel. Den første fil smider 30 forskellige brugere med hver 8 tilfældige tal ind i tabellen (bare for at have lidt at arbejde med). Den anden fil udtrækker 4 tal og udvælger 'vinderne' og viser resultatet. Den gennemløber dette 30 gange.
CREATE TABLE lotto ( id smallint(5) unsigned NOT NULL auto_increment, bruger varchar(32) NOT NULL default '', tal set('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p') NOT NULL default '', dato datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id) ) TYPE=MyISAM
---------- test1.php: ----------
<? require ('connect.inc.php');// Forbindelse til din database function LavPass($len=8) { return substr(md5(uniqid(mt_rand(), true)),0,$len); } function FindTal($antal=4) { $alle_tal = range(1,16); shuffle($alle_tal); $res = 0; for ($i=0;$i<$antal;$i++) { $tal = array_pop($alle_tal)-1; $res += pow(2, $tal); } return $res; } for ($i=0;$i<30;$i++) { $bruger = LavPass(); $tal = FindTal(8); $query = "insert into lotto set bruger='$bruger', tal=$tal, dato=now()"; mysql_query($query) or die(mysql_error()); } ?>
---------- test2.php: ----------
<? require ('connect.inc.php');// Forbindelse til din database function LavPass($len=8) { return substr(md5(uniqid(mt_rand(), true)),0,$len); } function FindTal($antal=4) { $alle_tal = range(1,16); shuffle($alle_tal); $res = array(); for ($i=0;$i<$antal;$i++) { $tal = array_pop($alle_tal)-1; echo $tal." - "; $res[$i] = pow(2, $tal); } echo "<br />"; return $res; } for ($i=0;$i<30;$i++) { $tal = FindTal(); $query = "select bruger from lotto where tal&$tal[0] && tal&$tal[1] && tal&$tal[2] && tal&$tal[3]"; $res = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($res)>0) { while ($row = mysql_fetch_assoc($res)) { echo "Tillykke ".$row['bruger']." Nr.: ".$i."<br />"; } } } ?>
Hov musetasten smuttede! Du får lige en opdateret version, så håber jeg du kan bruge det til noget:
CREATE TABLE lotto ( id smallint(5) unsigned NOT NULL auto_increment, bruger varchar(32) NOT NULL default '', tal set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16') NOT NULL default '', dato datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id) ) TYPE=MyISAM
--------- test1.php ---------
<? require ('connect.inc.php');// Forbindelse til din database function LavPass($len=8) { return substr(md5(uniqid(mt_rand(), true)),0,$len); } function FindTal($antal=4) { $alle_tal = range(1,16); srand((float)microtime()*1000000); shuffle($alle_tal); $res = 0; for ($i=0;$i<$antal;$i++) { $tal = array_pop($alle_tal)-1; $res += (1 << $tal); } return $res; } for ($i=0;$i<30;$i++) { $bruger = LavPass(); $tal = FindTal(8); $query = "insert into lotto set bruger='$bruger', tal=$tal, dato=now()"; mysql_query($query) or die(mysql_error()); } ?>
--------- test2.php ---------
<? require ('connect.inc.php');// Forbindelse til din database function FindTal($antal=4) { $alle_tal = range(1,16); srand((float)microtime()*1000000); shuffle($alle_tal); $res = array(); for ($i=0;$i<$antal;$i++) { $tal = array_pop($alle_tal)-1; $res[$i] = (1 << $tal); } sort($res, SORT_NUMERIC); return $res; } $out = ""; for ($i=0;$i<30;$i++) { $tal = FindTal(); $out .= "Uge ".($i+1).": Vindertal: ".strlen(decbin($tal[0]))." - ".strlen(decbin($tal[1]))." - ".strlen(decbin($tal[2]))." - ".strlen(decbin($tal[3]))."<br />"; $query = "select bruger, tal from lotto where tal&$tal[0] && tal&$tal[1] && tal&$tal[2] && tal&$tal[3]"; $res = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($res) == 0) { $out .= "<font color='#CC3300'>Ingen vindere i denne uge!</font>"; } else { while ($row = mysql_fetch_assoc($res)) { $out .= "Tillykke ".$row['bruger']."! - Dine tal: ".$row['tal']."<br />"; } } $out .= "<hr />"; } echo $out; ?>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.