/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
udtræk fra database?
Fra : Pelle Gøeg Møller


Dato : 23-03-03 21:13

Hej!

Jeg har en side hvor jeg har nogle spil liggende...

I databasen (mysql) er der:
Games Tabellen:
GamesID; Name; PublisherID, ProducerID; CopyrightID

Jeg har så firma navnene liggende i en tabel kaldet
Company:
CompanyID; Company; Link


Nu vil jeg gerne have trukket disse ud til at kunne give mig:

Spilnavnet; publisher navnet, producer navnet, copyright navnet.


$result = mysql_query("SELECT games.*, company.* FROM games, company WHERE
games.PublisherID = company.CompanyID;") or die();
$thegame = mysql_fetch_array($result);
$title = $thegame[Name];
$developer = $thegame[Company];
$kategori = $thegame[Genre];


Hvordan går jeg dette?

Venligst

Pelle Gøeg

......................
gamebird.dk



 
 
Michal (23-03-2003)
Kommentar
Fra : Michal


Dato : 23-03-03 23:19

In news:b5l4gh$t70$1@sunsite.dk,
Pelle Gøeg Møller <sunsitenews@ghostofkathrine.dk> wrote:

> I databasen (mysql) er der:
> Games Tabellen:
> GamesID; Name; PublisherID, ProducerID; CopyrightID
>
> Jeg har så firma navnene liggende i en tabel kaldet
> Company:
> CompanyID; Company; Link
>
>
> Nu vil jeg gerne have trukket disse ud til at kunne give mig:
>
> Spilnavnet; publisher navnet, producer navnet, copyright navnet.

$query = "SELECT games.name AS gamename, producer.name AS producername,
publisher.name AS publishername";
$query .= " FROM games, producer, publisher";
$query .= " WHERE games.producerid = producer.producerid";
$query .= " AND games.publisherid = publisher.publisherid";

$result = mysql_query( $query );

while ( $row = mysql_fetch_array( $result ) )
{
echo $row['gamename'];
echo $row['producername'];
echo $row['publishername'];
echo "\n<br />";
}

--
Michal
[ echo "\$0&\$0" > _; chmod +x _; ./_ ]



Pelle Gøeg Møller (23-03-2003)
Kommentar
Fra : Pelle Gøeg Møller


Dato : 23-03-03 23:15


"Michal" <nonexistant@fakedomain.INVALID> skrev i en meddelelse
news:b5lb33$ku0$1@sunsite.dk...
> In news:b5l4gh$t70$1@sunsite.dk,

> $query = "SELECT games.name AS gamename, producer.name AS producername,
> publisher.name AS publishername";
> $query .= " FROM games, producer, publisher";
> $query .= " WHERE games.producerid = producer.producerid";
> $query .= " AND games.publisherid = publisher.publisherid";
>
> $result = mysql_query( $query );
>
> while ( $row = mysql_fetch_array( $result ) )
> {
> echo $row['gamename'];
> echo $row['producername'];
> echo $row['publishername'];
> echo "\n<br />";
> }

Jeg har tænkt på at have 3 tabeller med firmanavnene... Men det vil jo bryde
konceptet med at kun have dataene stående 1 gang...
Som jeg kan se er det det du gør?


Venligst

Pelle



Michal (23-03-2003)
Kommentar
Fra : Michal


Dato : 23-03-03 23:41

In news:b5lbkk$num$1@sunsite.dk,
Pelle Gøeg Møller <sunsitenews@ghostofkathrine.dk> wrote:

> "Michal" <nonexistant@fakedomain.INVALID> skrev i en meddelelse
> news:b5lb33$ku0$1@sunsite.dk...
>> In news:b5l4gh$t70$1@sunsite.dk,
>
>> $query = "SELECT games.name AS gamename, producer.name AS
>> producername, publisher.name AS publishername";
>> $query .= " FROM games, producer, publisher";
>> $query .= " WHERE games.producerid = producer.producerid";
>> $query .= " AND games.publisherid = publisher.publisherid";
>>
>> $result = mysql_query( $query );
>>
>> while ( $row = mysql_fetch_array( $result ) )
>> {
>> echo $row['gamename'];
>> echo $row['producername'];
>> echo $row['publishername'];
>> echo "\n<br />";
>> }
>
> Jeg har tænkt på at have 3 tabeller med firmanavnene... Men det vil
> jo bryde konceptet med at kun have dataene stående 1 gang...
> Som jeg kan se er det det du gør?

nejda... jeg har netop en publisher database, en producer database, og en
spildatabase...

hver producer har en id, og hver publisher har en id...

og så henter jeg alle spil fra spilbasen, og producer/publisher navne, hvis
disses ID'er passer med de 2 id'er angivet i spilbasen...

--
Michal
[ echo "\$0&\$0" > _; chmod +x _; ./_ ]



Pelle Gøeg Møller (23-03-2003)
Kommentar
Fra : Pelle Gøeg Møller


Dato : 23-03-03 23:34

> nejda... jeg har netop en publisher database, en producer database, og en
> spildatabase...

Nemlig! og jeg har kun min Company base og min Games base... og herfra skal
disse sammenkædes...

Venligst

Pelle



Flemming Joensson (24-03-2003)
Kommentar
Fra : Flemming Joensson


Dato : 24-03-03 00:43

"Pelle Gøeg Møller" <sunsitenews@ghostofkathrine.dk> wrote in
news:b5lcoc$1kk$1@sunsite.dk:

>> nejda... jeg har netop en publisher database, en producer
>> database, og en spildatabase...
>
> Nemlig! og jeg har kun min Company base og min Games base... og
> herfra skal disse sammenkædes...

Jeg ville personligt lave en producer, copyright, og publisher-tabel i
stedet for at have dem alle i én og samme tabel.

Jeg tror du vil få et problem med at lave en join der kan matche 3
forskellige id i den samme tabel i den samme kolonne.

Hvis vi antager din query bliver noget i stil med nedenstående:

SELECT games.name, company.company WHERE games.publisherid =
company.companyid AND games.producerid = company.companyid AND
games.copyrightid = company.companyid

Så vil du efter min overbevisning (jeg har ikke tjekket det, så det kan
være jeg tager fejl) få problemer med at variablen company.company skal
antage 3 forskellige værdier på samme tid, hvilket den ikke kan. Og så
hjælper det ikke noget at sætte company.company AS publishername,
company.company AS producername, company.company AS copyrightname ind i
din query - for de refererer alle tre til den samme kilde og alle 3
variable vil efterfølgende have samme værdi (og du kan ikke bruge de
alias værdier for company.company i WHERE klausulen - så der er ikke
nogen måde at adskille dem på).

Jeg tror ikke du kan gøre det uden nogle hjælpetabeller eller uden at
splitte company-tabellen op i 3 tabeller.

Men hey - klokken er mange og jeg er træt, så jeg kan sagtens tage
fejl, men nu har du et bud på hvorfor du ikke skal gøre som du gør, og
i stedet gøre som Michal foreslår.

Mvh.
Flemming

--
Hvis du vil svare per e-mail skal "fjerndette." fjernes fra
mailadressen.


Flemming Joensson (24-03-2003)
Kommentar
Fra : Flemming Joensson


Dato : 24-03-03 17:02

Flemming Joensson <joensson@fjerndette.cs.auc.dk> wrote in
news:Xns934873F43A2joenssoncsaucdk@130.225.247.90:

> Jeg tror ikke du kan gøre det uden nogle hjælpetabeller eller uden
> at splitte company-tabellen op i 3 tabeller.

Jeg kom lige til at tænke på en anden løsning. Du laver bare tre
specifikke queries. Sådan at du laver en specifik query for publisher,
producer, og copyright - og så slipper du for at opdele company-
tabellen. Jeg vil stadig mene det ikke kan lade sig gøre med din
nuværende struktur at kollapse de tre queries ind i én.

Flemming

--
Hvis du vil svare per e-mail skal "fjerndette." fjernes fra
mailadressen.


Pelle Gøeg Møller (24-03-2003)
Kommentar
Fra : Pelle Gøeg Møller


Dato : 24-03-03 17:43


"Flemming Joensson" <joensson@fjerndette.cs.auc.dk> skrev i en meddelelse
news:Xns9348AD31CBD99joenssoncsaucdk@130.225.247.90...
> Jeg kom lige til at tænke på en anden løsning. Du laver bare tre
> specifikke queries. Sådan at du laver en specifik query for publisher,
> producer, og copyright - og så slipper du for at opdele company-
> tabellen. Jeg vil stadig mene det ikke kan lade sig gøre med din
> nuværende struktur at kollapse de tre queries ind i én.


Jeg har nu lavet det med en enkelt tabel, og 3 query strings...


hilsen
Pelle



Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste