Pravim browser based RPG i iznervirao me je query koji korisitm za generisanje mapa u igrici. Jos uvek sam pocetnik tako da ce pitanje mozda biit glupo nekome, ali bih bio zhavalan ako neko moze da mi kaze zasto se querry u nastavku ne ponasa kako treba. U bazi imam tabelu sa podacima o poljima mape u kojoj treba da se desava igra. Ovo je osnovni kod za strukturu tabele iz koje povlacim podatke:
CREATE TABLE IF NOT EXISTS `maptiles` (
`maptileid` int(10) NOT NULL AUTO_INCREMENT,
`mapid` int(6) unsigned NOT NULL,
`maprow` int(5) NOT NULL,
`mapcol` int(5) NOT NULL,
`maptile` varchar(20) NOT NULL DEFAULT 'grass1.gif',
`passable` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`maptileid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=18212 ;
U prilogu sam prikacio kompletan sql fajl koji ubacuje i podatke o samim poljima u tabelu. Mapa je dimenzija 61 x 61 polja.
Da bih mogao da prikazem podatke u obliku kvadratne forme pogodne za ekranski prikaz, kod dat u nastavku treba da iz cele tabele od 61x61 polja izvuce samo oblast 11x11 za date limite redova i kolona. On to odradi ali ne kako treba, jer se duplira broj povucenih redova. Umesto 121 redova sistem povuce 242 redova. To sam uspeo da resim preko LIMIT opcije ali me nervira zasto ne radi kako treba bez toga, Ja licno ne vidim gresku u kodu.
SELECT maprow, mapcol, maptile, passable
FROM maptiles
WHERE (
mapid =1
)
AND (
maprow >=10
AND maprow <=20
)
AND (
mapcol >=10
AND mapcol <=20
)
LIMIT 0 , 121
Bio bih zahvalan ako neko ko ima vise iskustva moze da mi kaze gde gresim. U ovom slucaju sam resio problem, ali hocu da znam gde sam pogresio.
Hvala svima unapred na bilo kakvoj pomoci.