Avatar billede rubaek Mester
15. juni 2008 - 18:45 Der er 18 kommentarer

Union kommandoen driller

Jeg ønsker at trække svar ud fra 2 tabeller. Jeg har fundet frem til at union kommandoen sikkert kan bruges, men jeg kan kun få den til at tage et felt med at den anden tabel, Hvordan kan scriptet skrives hvis det skal kunne bruges?

<?php
include 'login_reg.php';
// Her findes ID fra den aktive bruger:

$bruger_id = @mysql_query("SELECT ID FROM users WHERE username = '$username'") or die(mysql_error());

$number=mysql_num_rows($bruger_id);

echo "<TABLE WIDTH=\"146\" BORDER=\"0\">";

while($row=mysql_fetch_array($bruger_id))
{
$ID = $row[ID];
}
?>

<?php

// Her sammenkædes de 2 tabeller users samt firmaer
$resultat = @mysql_query("SELECT username,ID,ejer_firma FROM users WHERE ID = '$ID'
UNION
SELECT kode, firmanavn,kurs FROM firmaer WHERE firma_id='$ID'") or die(mysql_error());

$number=mysql_num_rows($resultat);


echo "<TABLE WIDTH=\"146\" BORDER=\"0\">";

while($row=mysql_fetch_array($resultat))
{

echo "<TR VALIGN='top'>Velkommen3
    <TD><B>$row[ID]</B></TD>

</TR>";
}

echo "</TABLE>";
?>
Avatar billede erikjacobsen Ekspert
15. juni 2008 - 19:42 #1
Jeg tvivler på, at det er hvad du vil. Kan du forklare hvad resultatet skal være?
Avatar billede rubaek Mester
15. juni 2008 - 20:29 #2
Det skal bruges til et undervisningsspil om aktier.
Når brugeren logger ind har han et unik ID nr. samt en celle med oplysninger om hvilket firma han ejer (ejer_firma). På hans oplysningsside skal der stå hvilket firma han ejer og hvilken kurs firmaet har i øjeblikket. Herudover skal der også stå noget om hans saldo, men det kommer senere. Håber det blev tydligere.
Avatar billede erikjacobsen Ekspert
15. juni 2008 - 20:34 #3
Det ligner mere en join.
Avatar billede rubaek Mester
15. juni 2008 - 20:45 #4
Muligvis, jeg er lidt på bar bund, så jeg prøver mig frem. Kræver join ikke et fælles felt?
Avatar billede erikjacobsen Ekspert
15. juni 2008 - 20:50 #5
Jo - ser ud til du har ID og firma_id
Avatar billede rubaek Mester
15. juni 2008 - 20:58 #6
Nej det er ikke et fælles felt. ID er brugerens ID og firma_id er firmaets id. De har ikke noget med hinanden af gøre.
Avatar billede rubaek Mester
15. juni 2008 - 21:03 #7
Men det er muligt at det skal laves på en helt anden måde. Hvis det er tilfældet, har du så en ide til hvordan det skal laves?
Avatar billede erikjacobsen Ekspert
15. juni 2008 - 21:05 #8
I din SELECT med UNION bruger du den samme værdi i forespørgslen... ??

Men forklar blot hvordan dine data hænger sammen, så er det sikkert nemt nok ;)
Avatar billede rubaek Mester
15. juni 2008 - 21:17 #9
Jeg har en tabel (users) der indeholder følgende felter:
ID
username
password
ejer_firma

tabellen (firmaer) indeholder:
firmanavn
kurs
kode (som ikke rigtig bruges til noget endnu)
Avatar billede erikjacobsen Ekspert
15. juni 2008 - 21:41 #10
Hvad står der fx i feltet 'ejer_firma' - er det så det samme som i feltet 'firmanavn' ?
Avatar billede rubaek Mester
15. juni 2008 - 21:57 #11
Jeg havde tænkt at der skulle stå et id nr, men det er da rigtig det kunne jo ligeså godt være navnet på firmaet. (eller flere navne, hvis det senere skal udbygges til at man kan have flere firmaer?)
Avatar billede erikjacobsen Ekspert
15. juni 2008 - 22:15 #12
Når du får et felt i begge tabeller, der "peger på hinanden", så skal du bruge en join på de felter. Ellers har du ingen indikation af hvem, der ejer hvilke firmaer.

Og det med flere firmaer kan vi sikkert vende tilbage til ...
Avatar billede rubaek Mester
16. juni 2008 - 20:37 #13
Så er den på plads. Nu kan den finde et firma, hvordan kan man gøre med flere firmaer.
Det kunne være et nyt spørgsmål da dette første problem jo er løst.
Send et svar.
Avatar billede erikjacobsen Ekspert
16. juni 2008 - 21:16 #14
Jeg samler ikke på point, tak.

Kan en person have flere firmaer, men et firma kun ejes af en person?
Avatar billede rubaek Mester
16. juni 2008 - 21:59 #15
Nej det er tænkt sådan, fra starten, at en person kan eje flere aktier/firmaer, og at et firma kan ejes af flere personer/aktieandele. Dog er der ikke indtænkt en aktiekapital dvs. en vis aktiemængde, da det ikke er det vigtigste i undervisnings øjemed.
Avatar billede erikjacobsen Ekspert
17. juni 2008 - 18:42 #16
Ok, hvis det er mange til mange, så skal du have en mellemtabel, der fortæller hvilke ejere der er knyttet til hvilke firmaer, og omvendt.

Kig fx på http://www.singingeels.com/Articles/Understanding_SQL_Many_to_Many_Relationships.aspx
Avatar billede rubaek Mester
03. oktober 2008 - 20:25 #17
Lukker
Avatar billede rubaek Mester
03. oktober 2008 - 22:22 #18
Så send et svar, så jeg kan lukke ordentlig.
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