Probleme mit .install-File
Eingetragen von Lakai (39)
am 03.09.2007 - 00:35 Uhr in
am 03.09.2007 - 00:35 Uhr in
Hallo Drupaler
Bin gerade ein bisschen am Module basteln für ein Browsergame und bin gerade dabei ein MapScript zu schreiben, das eigentlich nur ganz viele DB einträge machen soll...
Und das sieht so aus:
<?php
function bgmap_install() {
db_query('CREATE TABLE `bg_map` ('
. ' `mapid` INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY, '
. ' `x` TINYINT NULL, '
. ' `y` TINYINT NULL, '
. ' `z` TINYINT NULL, '
. ' `used` TINYINT NULL DEFAULT \'0\', '
. ' `name` CHAR(255) NULL, '
. ' `flache` TINYINT NULL, '
. ' `tempmin` TINYINT NULL, '
. ' `tempmax` TINYINT NULL, '
. ' `flora` CHAR(255) NULL, '
. ' `fauna` CHAR(255) NULL'
. ' )'
. ' TYPE = myisam;');
$flora = array('Tannenwälder', 'Moorlandschaft', 'Gemischte Wälder', 'Grüne Weiden', 'Hügelige Landschaft');
for($x=1;$x<11;$x++) {
$anzahly = mt_rand(15,50);
for($y=1;$y<($anzahly+1);$y++) {
$anzahlz = mt_rand(5,15);
for($z=1;$z<($anzahlz+1);$z++) {
$name = 'Ortsname';
$flache = mt_rand(0,250);
$tempmin = mt_rand(-15,5);
$tempmax = mt_rand(7,32);
db_query('INSERT INTO {bg_map} (x,y,z,name,fläche,tempmin,tempmax,flora)VALUES (%d, %d, %d, %d, %d, %d, %d, %d)',$x,$y,$z,$name,$flache,$tempmin,$tempmax,$flora[mt_rand(0,count($flora)-1)]);
}
}
}
}
?>
Jo, vielleicht schnell ne erklärung dazu. Zuerst erstellt das Script eine TAbelle (das funktioniert). Danach kommen drei FOR Schleifen für XX:YY:ZZ Koordinaten, und die sollen jedesmal in die DB abgespeichert werden, macht es aber nicht...
weiss einer warum?
liege Grüsse
Lakai
- Anmelden oder Registrieren um Kommentare zu schreiben
muss ich da irgendwie noch
am 03.09.2007 - 13:22 Uhr
muss ich da irgendwie noch etwas hinzufuegen damit die funktion ausgefuert wird? hab schon vieles versucht und mir gehen langsam die Ideen aus... habt ihr ne idee woran das lieben koennte?
Thanks
p.s. auf dieser Tastatur gibts keine ue, oe und ae... sorry
Prüfe mal mit nem print, ob
am 03.09.2007 - 14:18 Uhr
Prüfe mal mit nem print, ob er überhaupt zur Anweisung kommt.
gruß pebosi
gruß pebosi
--
https://pebosi.net
Code geändert
am 03.09.2007 - 18:45 Uhr
Habe den Code mal einbisschen abgeändert... den Array $map eingeführt und ausgegeben:
<?php
$flora = array('Tannenwälder', 'Moorlandschaft', 'Gemischte Wälder', 'Grüne Weiden', 'Hügelige Landschaft');
$map = array();
for($x=1;$x<11;$x++) {
$anzahly = mt_rand(15,50);
for($y=1;$y<($anzahly+1);$y++) {
$anzahlz = mt_rand(5,15);
for($z=1;$z<($anzahlz+1);$z++) {
$name = 'Ortsname';
$flache = mt_rand(0,250);
$tempmin = mt_rand(-15,5);
$tempmax = mt_rand(7,32);
$map[] = $x.':'.$y.':'.$z.', '.$name.', '.$flache.', '.$tempmin.', '.$tempmax.', '.$flora[mt_rand(0,count($flora)-1)];
}
}
}
print $map[0];
?>
und das Resultat ist:
1:1:1, Ortsname, 73, 0, 21, Gemischte Wälder
die Ausgabe ist korrekt...
keine Ahnung an was das liegt, aber vielleicht gibts irgend eine Limite an db-querys pro script oder so... kann es mir sonst nich erklären warum...
greetz Lakai
neues problem
am 03.09.2007 - 21:57 Uhr
Ok, hab den Fehler gefunden, die Spalte hiess Flaeche und nicht flache... aber ein anderes Problem ist jetzt dass die CHAR Typen nicht in die DB eingefuegt werden... liegt das an %d oder so? wie bringe ich den Text in die DB, bis jetzt waren es immer nur zahlen -.- oder ich habs auf eine kompliziertere Weise gemacht ohne die %d parameter...
greetz
Für Strings gibts
am 04.09.2007 - 08:38 Uhr
Für Strings gibts "%s"
gruß pebosi
gruß pebosi
--
https://pebosi.net