Array in een database
Ik probeer een array te maken met een aantal randoms. de bedoeling is dat er tussen de 30 en de 40 getallen (1e random) worder gegenereerd tussen de 0 en de 400 (2e random) dan moeten deze vervolgens in de database worden gestored als een array.
heeft iemand hiervoor een werkende oplossing? met omschrijving hoe het werkt en waarom. ben momenteel al een hele dag bezig met proberen zonder enig succes.
Toevoeging op 16/09/2012 01:43:01:
dit is het verste wat ik ben gekomen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$Positions = 400;
$Block = rand (30,40);
$Username = $_POST['Username'];
$Resources="12";
$tbl_name2 = "planets";
$Blocks="";
for ($a = 0; $a < $Block; $a++){
$Blocked = rand (0,400);
$Blocks['$a']=$Blocked ;
$indb=mysql_query("INSERT INTO $tbl_name2 (Username,Blocks,Resources) VALUES ('$Username','$Blocks','$Resources')") or die(mysql_error());
//header("location: ../index.php");
$getit=mysql_query("select * from planets where Username='$Username' ");
$datas=@mysql_fetch_array($getit);
$aray=$datas[1];
echo $aray;
}
$Block = rand (30,40);
$Username = $_POST['Username'];
$Resources="12";
$tbl_name2 = "planets";
$Blocks="";
for ($a = 0; $a < $Block; $a++){
$Blocked = rand (0,400);
$Blocks['$a']=$Blocked ;
$indb=mysql_query("INSERT INTO $tbl_name2 (Username,Blocks,Resources) VALUES ('$Username','$Blocks','$Resources')") or die(mysql_error());
//header("location: ../index.php");
$getit=mysql_query("select * from planets where Username='$Username' ");
$datas=@mysql_fetch_array($getit);
$aray=$datas[1];
echo $aray;
}
- variabele buiten quotes, zie ook operators.string
- or die is geen foutafhandeling, handel af met if statements zoals hier wordt gedaan
- onderdruk geen fouten (@)
- kopieer niet onnodig variabele, regel 3
- spring overal hetzelfde in, zo krijg je wat overzicht in je script
- je script is lek voor SQL injection, gebruik mysql_real_escape_string om dit te voorkomen
- cijfers zijn geen strings en horen dus niet binnen quotes
- $Blocks = ""; en vervolgens die string als array gebruiken? Dan moet je hem ook instantiëren als array...
En vervolgens: Een array hoor je niet in de database op te slaan. 1 rij stelt 1 data voor en niet een array van data. Daarom zul je ook de array door moeten lopen en voor elk item het opslaan in de database.
Dit is handig om het in 1 query te doen, werkt wat sneller, of met prepared statements, als je dat gebruikt.