Avatar billede bas Forsker
29. juli 2005 - 09:23 Der er 15 kommentarer og
1 løsning

Forvalg i database?

Hej eksperter

Jeg vil lave et system, hvor man som bruger og som udlejer
skal vælge landsdel i en drop down box (f.eks. østjylland,
vestjylland, midtjylland osv.)

Brugeren skal kunne søge på en bestemt landsdel og udlejeren skal kunne lægge noget ind under en bestemt landsdel.

Mit spørgsmål er, hvordan tabellen i databasen skal se ud.
Hvilken datatype - alm. char / varchar eller er der en bestemt datatype?
Skriver jeg så bare vestjylland, midtjylland, østjylland ind i databasen som alm. poster eller hvordan?
Landsdelene skal jo netop knyttes sammen med de oplysninger som udlejerne taster ind.

Jeg bruger phpmyadmin (findes der andre til php?)

Måske er mit spørgsmål lidt kryptisk, så spørg bare, hvis der er noget, der skal uddybes.

På forhånd tak.

Med venlig hilsen
Martin
Avatar billede nielle Nybegynder
29. juli 2005 - 18:08 #1
Du bør som minimum have to tabeller – en til landsdele og en til udlejningsegendommen:

Tabellen ”landsdel”:

landsdel_id – tal, autoincrement, primary key
landsdel_navn – varchar(30)

Tabellen ”ejendom”:

ejendom_id – tal, autoincrement, primaty key
adresse – varchar(50)
fk_landsdel_id – tal af samme størrelse som i tabellen landstel
udlejer_navn – varchar(50)
... og andre udlejer informationer

Når du tilføjer et nyt lejemål til tabellen ”egendom” skal feltet fk_landsdel_id udfyldes med det id fra tabellen ”landsdel” som svare til den landdel som ejendommen ligger i.
Avatar billede bas Forsker
30. juli 2005 - 16:04 #2
> nielle

Ok tak, men hvor skriver jeg så østjylland, nordjylland, vestjylland?
Skriver jeg dem bare ind som alm. poster i tabellen "landsdel" under
landsdel_navn?

- Martin
Avatar billede nielle Nybegynder
30. juli 2005 - 16:05 #3
Nemlig. :^)
Avatar billede nielle Nybegynder
08. august 2005 - 19:36 #4
Har du fået det til at virke endnu?
Avatar billede bas Forsker
08. august 2005 - 20:01 #5
> nielle

Undskyld, jeg har endnu ikke fået det prøvet af.

Måske skal jeg bare lukke, hvis du poster et svar.

Tak for dine svar.

Har ikke tid nu her - er så småt på vej til
Skanderborg Festival ;-)

- Martin
Avatar billede nielle Nybegynder
08. august 2005 - 20:57 #6
Jeg lægger først er svar når du har fået løst dit problem. Kan sagtens vente til at du er kommet tilbage igen. :^)

God festival!
Avatar billede bas Forsker
08. august 2005 - 21:32 #7
Ok godt.

Mange tak!

/Martin
Avatar billede nielle Nybegynder
22. august 2005 - 22:51 #8
Nå, nu må tømmermændene vel efterhånden have lagt sig. ;^)

Skal vi ikke se at blive færdig her?
Avatar billede bas Forsker
22. august 2005 - 23:05 #9
jo undskyld, har desværre ikke fået kigget på det,
da jeg har haft lidt travlt.

poster du et svar, så lukker jeg.

Tak for hjælpen.

- Martin
Avatar billede nielle Nybegynder
23. august 2005 - 07:57 #10
Nu var det jo ikke så meget for pointsenes skyld, men mere for at få løst opgaven, at jeg spurgte. Så vidt jeg kan vurdere så er vi jo næsten igennem; Du har fået defineret tabellerne, og nu mangler du bare lige at få på plads hvordan de skal bruges.

Well, du får da et svar... :^)

... og når du har tid til at vi går videre, så spørger du bare her i dette spørgsmål. :^)
Avatar billede nielle Nybegynder
23. august 2005 - 07:57 #11
... svar :^)
Avatar billede bas Forsker
23. august 2005 - 08:24 #12
Ok, helt i orden.

> ... og når du har tid til at vi går videre, så spørger du bare her i dette spørgsmål. :^)

Mange tak skal du have :-)

- Martin
Avatar billede bas Forsker
23. august 2005 - 22:36 #13
> nielle

Jeg har nu været ved at kigge på det.

Mine tabeller ser indtil videre sådan ud:

CREATE TABLE `ejendom` (
  `ejendom_id` int(11) NOT NULL auto_increment,
  `adresse` varchar(50) NOT NULL default '',
  `fk_landsdel_id` int(11) NOT NULL default '0',
  `udlejer_navn` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`ejendom_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;


CREATE TABLE `landsdel` (
  `landsel_id` int(11) NOT NULL auto_increment,
  `landsdel_navn` varchar(30) NOT NULL default '',
  PRIMARY KEY  (`landsel_id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;

I landsdel_navn har jeg skrevet henholdvis Nordjylland,
Vestjylland, Midtjylland og Østjylland - og de har id
nr 1, 2, 3, 4

I min php ser min query sådan ud:

$query = mysql_query("SELECT DISTINCT landsdel_navn FROM landsdel WHERE landsdel_navn != '' ORDER BY landsdel_navn ASC")or die(mysql_error());

siden ser sådan ud http://www.detour.dk/blandet/landsdele.php og det ser ud til at virke fint nok.

Meningen er så, at når en bruger en ejendom, skal han vælge landsdel.
Den valgte landsdel skal jo så gemmes sammen med de øvrige indtastede
oplysninger.

Jeg kunne så forestille mig, at query'en kunne se nogenlunde sådan ud:

$query = mysql_query("INSERT navn, tlf, postnr, by, landsdel_navn INTO landsdel
where landsdel_navn = $landsdel_navnC")or die(mysql_error());

noget i den retning, eller er det helt galt?

På forhånd tak.

Hilsen Martin
Avatar billede nielle Nybegynder
23. august 2005 - 22:45 #14
Indledningsvis. Ret lige `landsel_id` til `landsdel_id`.

Din SQL skal nu snarere se sådan her ud:

$query = mysql_query("INSERT INTO ejendom (navn, tlf, postnr, by, landsdel_id) VALUES ('" . $Navn . "', "'. $Tlf .', '" . $PostNr . "', '" . $By . "'" . $LandsdelID . "") or die(mysql_error());
Avatar billede nielle Nybegynder
23. august 2005 - 22:50 #15
... altså bortset fra at du endnu ikke har felter i din tabel til navn, tlf, postnr og den slags. Så din SQL skal se sådan her ud med din nuværende tabelstruktur:

$query = mysql_query("INSERT INTO ejendom (fk_landsdel_id, adresse, udlejer_navn) VALUES (" . $LandsdelID . ", '" . $Adresse . "', '" . $Navn . "'") or die(mysql_error());
Avatar billede nielle Nybegynder
23. august 2005 - 22:52 #16
Det er jo ejendom-tabellen som skal opdateres - der kommer jo ligefrem nye lansdele til eneste hver dag ;^)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester