28. februar 2007 - 17:46Der er
9 kommentarer og 1 løsning
Vælg første
Denne database bliver brugt i forbindelse med et spil. Hver spiller har 10 marker som kan være alt fra level 0 (ingen mark) til level 10 (den bedste). Hver bruger har 1 gård som også kan være fra level 0 (ingen gård) til level 10 (den bedste).
Desuden kan hver spiller flytte gården til et andet land (også kaldet 'location').
Hver gård og mark kan slettes og erstattes af en ny.
Databasen ser sådan ud: CREATE TABLE farm ( id int(11) NOT NULL auto_increment, bruger text NOT NULL, farm text NOT NULL, field1 text NOT NULL, field2 text NOT NULL, field3 text NOT NULL, field4 text NOT NULL, field5 text NOT NULL, field6 text NOT NULL, field7 text NOT NULL, field8 text NOT NULL, field9 text NOT NULL, field10 text NOT NULL, location text NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Hvordan får jeg et script til at vise mig hvilket field nummer der er det først med værdi 0 (nul) ?
Det skal bruges i forbindelse med køb/salg af marker og gård.
Fremfor at laegge dem ind paa denne maade ville den muligvis vaere bedre at lave to tabeller, en med farms og en med fields. Saa i famrs ahr du f.eks felterne: ID, farm, bruger
og i fields har du saa: field, status, farm
Du kan saa autmatisk oprette 10 felter i field tabellen hver gang der oprettes en farm
Paa den maade kan du saa snildt hente den foerste mark med status 0 SELECT fields.field, field.farm FROM fields INNER JOIN farms ON fields.farm = farm.id WHERE field.status=0;
10000 rækker i en table er da ingen ting... Tænk på hvor mange tråde og spørgsmål der er på Eksperten. Og du ind sætter da bare 'location' i den første table som overchord beskriver.
ok du skal joine din tabel med markerne via tabellen med farms som jo holder bruger info ogsaa.
Saa du kan bruge noget i retning af: SELECT field.fieldlvl FROM field INNER JOIN farms ON field.farm = farm.id WHERE farm.bruger = '".$_SESSION['user']."'"
mlige en kommentar til dine to andre posts: Stoerrelsen paa tabellerne er ikke specielt problematiske. Reelt set gemmer du ikke ret meget mere data end foer. Og faktisk er det en hurtigere operation for dig at lade en gaard flytte land nu du opdteringen sker i en mindre tabel.
overchord > Jamen det overstående benytter jo kun fieldlvl til at regne total produktion ud, som er fieldlvl * 500, og hvis fieldlvl er over nul skal den smide billede "field1.jpg" ud. Ellers skal det bare være field0.jpg.
ok, men det burde ogsaa stadig virke. Jeg gik ud fra at grunden til at det ikke virkede er fordi dit link til bruger-data nu kun eksisterer i farm-tabellen, og derfor skal du have lavet det join. Saa al koden under SQL'en burde stadig virke ok.
Kan ikke lige huske hvad jeg gjorde med det virker da .. Jeg har rigtig mange funktioner der skal laves, så der er ikke altid til at huske hvad jeg gjorde :)
Men tak for al jeres hjælp.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.