ugrás a tartalomhoz

Random függvény + mysql

dobko · 2009. Május. 25. (H), 19.42
Sziasztok, kezdő vagyok még és az a problémám, hogy van egy lottó generátor és nemtudom megcsinálni, hogy ne ismételje a számokat és növekvő sorrendben irassa ki őket. Majd ezek után az egészet lekell menteni egy adatbázisba, amivel az a bajom, hogy egy mezőbe egy érték fér és nem 5 db, hallottam, hogy tegyem tömbe és egy változóként mentsem, de sajnos még nagyon az elején vagyok a dolgoknak.

for($a=1; $a<=5; $a++)
print mt_rand(1, 90).' '; eddig oké, de utána...

az adatbázisba lementést ugytudtam megcsinálni, hogy:

print $a=mt_rand(1,90).', ';
print $b=mt_rand(1,90).', ';
print $c=mt_rand(1,90).', ';
print $d=mt_rand(1,90).', ';
print $e=mt_rand(1,90);

csak így tudom lementeni adatbázisba...

A bajom, hogy tanuló vagyok és lekéne már adni, mint lecke és nemtudok idöben elkészülni ezért kérném valaki segítségét

Előre is köszi
 
1

print?

gex · 2009. Május. 25. (H), 19.47
az órán tanultad hogy a printtel kell a mysql adatbázisba írni?
2

Megoldások

Poetro · 2009. Május. 25. (H), 21.51
<?php
$szamok = array();
do {
  $szam = mt_rand(1, 90);
  if (!in_array($szam, $szamok)) {
    $szamok[] = $szam;
  }
} while(count($szamok) < 5);
sort($szamok);
Másik megoldás:
<?php
$szamok = range(1, 90);
shuffle($szamok);
array_splice($szamok, 5);
sort($szamok);
És hogyan néz ki a MySQL tábla?
3

Bocsi kicsit kevés infot írtam

dobko · 2009. Május. 25. (H), 22.06
A print arra kell nekem, hogy megjelenítse a lapon a számokat, INSERT INTO... utasítással tettem az adatbázisba

így néz ki most http://kep.ivpicture.hu/109154.jpg

A mysql tábla áll 1db ID(kulcs mezö) 5db szam és egy del mezö amibe egy törlés gombot tettem. Az ID ugy van állítva, hogy automatikusan nö eggyel az értéke generálásonként, ha feltöltöm az adatokat.
4

Itt az egész kód

dobko · 2009. Május. 25. (H), 23.36
<?php
$con=mysql_connect("localhost", "root","root");
mysql_Select_db("hazi") or Die("Nem érhetõ el az adatbázis");
$sql="SELECT * FROM szamok";
//Print $sql;
print("<center>"."<font size='8' color='#FFFF00'>5-ös Lottó sorsolás, majd adatbázisba feltöltés v1.0</font>"."</center>");

$rs=mysql_query($sql);

if (isset($_POST["feltolt"]))

{
print("<center>"."<img src='lotto.gif'>"."</center>");
print("<center>"."<font color='peru' size='6'>").'Számok: ';
print $a=mt_rand(1,90).', ';
print $b=mt_rand(1,90).', ';
print $c=mt_rand(1,90).', ';
print $d=mt_rand(1,90).', ';
print $e=mt_rand(1,90);
print("</center>"."</font>"."<br>");
$szam1=$_POST["szam1"];
$sql="INSERT INTO `hazi`.`szamok` (id,szam1,szam2,szam3,szam4,szam5) ";
$sql.="VALUES('','$a','$b','$c','$d','$e');";

$rs=mysql_query($sql);
}

if (isset($_POST["urit"]))
{
$sql = 'TRUNCATE TABLE `szamok`';
$rs=mysql_query($sql);
}
$sordb=mysql_query("SELECT COUNT(*) AS num FROM szamok");
$sornum=mysql_fetch_array($sordb);

if (isset($_POST["del"]))
{
$sql="DELETE FROM szamok WHERE id=".$_POST["id"];
$rs=mysql_query($sql);
}

$sordb=mysql_query("SELECT COUNT(*) AS num FROM szamok");
$sornum=mysql_fetch_array($sordb);


$n=$sornum['num'];
print ("<center><table border=6 style='BACKGROUND-COLOR: #00FF00 '>");
print("<th>id</th>");
print("<th>szam1</th>");
print("<th>szam2</th>");
print("<th>szam3</th>");
print("<th>szam4</th>");
print("<th>szam5</th>");
print("<th>del</th>");

$szamokdb=mysql_query("SELECT * FROM szamok");
for($i=0;$i<$n;$i++){
$sor=mysql_fetch_array($szamokdb);
print("<tr>");
print("<td>".$sor["id"]."</td>");
print("<td>".$sor["szam1"]."</td>");
print("<td>".$sor["szam2"]."</td>");
print("<td>".$sor["szam3"]."</td>");
print("<td>".$sor["szam4"]."</td>");
print("<td>".$sor["szam5"]."</td>");
print("<th><form method='post'><input type='hidden' name='id' value='".$sor['id']."'><input type='submit' name='del' value='Törlés'></form></th>");
print("</tr>");
print $sor["<br/>"];
}
print("</table></center>");
?>
<html>
<body style="background-color: #2E8B57">

<form METHOD="POST">
<center>
<br><input type="SUBMIT" name="feltolt" value="Generál és Feltölt"><br>
<br><input type="SUBMIT" name="urit" value="Tábla kiürítése"><br>
</center>
</form>
</body>
</html>

Na nekem ennyi a jelenlegi tudásom, biztos vannak benne hibák, de működik.
Annyit akarok vele, hogy ne ismétlődjenek a számok és hogy növekvő sorrendben legyenek.

DE KÖSZI AZ EDDIGI HOZZÁSZÓLÁST IS !!!!!
5

megoldva

Poetro · 2009. Május. 25. (H), 23.46
Annyit akarok vele, hogy ne ismétlődjenek a számok és hogy növekvő sorrendben legyenek.

Ezt teljesíti a korábbi hozzászólásom
6

Próbáltam

dobko · 2009. Május. 26. (K), 16.54
Amit leírtál az nekem az egyik hibára fut, a másik pedig csak egy array szöveget dob ki.
De ha jó is lenne nálam, akkor se tudom, hogy mentsem le 5 változóba.
Szóval ha nemgond letudnád írni nekem kicsit bövebben, pl azt a részt ahova berakod.
Nagyon köszönöm
Bocsi a bénázásért, de csak most kezdem még a dolgokat átlátni és hibákba ütközök.
7

Hibák?

Poetro · 2009. Május. 26. (K), 17.13
Nem tudom, te hol látsz hibát, de a $szamok tömb mind2 esetben 5 elemet tartalmaz.
Ha úgy neked kényelmesebb rakd a végére:
list($a, $b, $c, $d, $e) = $szamok;
és ekkor $a, ... $e néven hivatkozhatsz rájuk, nem csak $szamok[0], ... $szamok[4] formában
8

THX

dobko · 2009. Május. 26. (K), 17.36
Köszi
9

JEEEEEEE

dobko · 2009. Május. 26. (K), 18.10
És most élesben is teszteltem és tényleg jóóó.
Köszi nagyon.
Nekem ezis elég öröm most, neked lehet kicsit túl egyszerü, de valahol elkell kezdeni.