Avatar billede tsearex66666 Nybegynder
08. august 2003 - 10:07 Der er 20 kommentarer og
1 løsning

Udtræk fra 2 tabeller Join?

Hejsa
Jeg har et problem med at hente fra 2 tabeller, jeg ved ikke om jeg skal bruge Join eller om det jeg prøver på kan lade sig gøre.

Jeg har 2 tabeller (TABEL 1 TABEL 2) som har referencen ordrenr imellem sig.



TABEL 1                      TABEL 2
ordrenr Navn        ordrenr      fullname    dato    navn
------------        ---------------------------------------
1    poul        1          thomas      6/8-03  bil
1    jens        2            henrik      6/8-03  cykel
1    jacob        3            hans        6/8-03  rød
1    palle        4            ole        6/8-03  grim


Felter som jeg skal bruge:

(TABEL 2)    fullname    dato        navn

(TABEL 1)    navn



Jeg vil gerne have skrevet det færdige resultat på denne måde på min webside:

thomas      6/8-03  bil
poul         
jens           
jacob         
palle

Hvordan skal jeg "bygge" min select?
Hvordan skriver jeg det på min webside?
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 10:09 #1
TABEL 1                      TABEL 2
ordrenr Navn        ordrenr      fullname    dato    navn
------------        ---------------------------------------
1    poul            1          thomas      6/8-03  bil
1    jens            2          henrik      6/8-03  cykel
1    jacob          3          hans        6/8-03  rød
1    palle          4          ole        6/8-03  grim
Avatar billede arne_v Ekspert
08. august 2003 - 10:22 #2
Det kan du ikke lave i ren SQL.

I SQL laver du følgende query:

SELECT tabel1.ordrenr,tabel1.navn,tabel2.data,tabel2.navn FROM tabel JOIN tabel2 ON tabel1.ordrenr=tabel2.ordrenr

Og så laver du din applikation således:

hvis ordrenr samme som forrige ordrenr så {
  udskriv kun tabel1.navn
} ellers {
  udskriv tabel1.navn + tabel2.dato + tabel2.navn
}
Avatar billede proaccess Nybegynder
08. august 2003 - 10:29 #3
Eller du kan lave 2 forespørgsler...

SELECT ordrenr, fullname, dato, navn FROM tabel2
{
  gem ordrenr i variabel
  udskriv hovedoplysninger
  SELECT ordrenr, navn FROM tabel1 WHERE ordrenr=&variabel
  {
      udskriv navne
  }
}
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 10:33 #4
Tester lige!
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 10:41 #5
Sådan ser det ud:

$result = mysql_query("SELECT hardware.ordrenr,hardware.navn,leveringsoplysninger.dato,leveringsoplysninger.navn,leveringsoplysninger.fullname FROM tabel JOIN leveringsoplysninger ON hardware.ordrenr=leveringsoplysninger.ordrenr where er_leveret = '0' ") or die ("Kunne ikke vælge vælge fra hardware"); 

Men jeg får denne fejl:

Kunne ikke vælge vælge fra hardware
Warning: write failed: Generic file system error (111) in Unknown on line 0
Avatar billede arne_v Ekspert
08. august 2003 - 10:48 #6
"Generic file system error" ?

Det lyder lidt halv grimt !
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 10:50 #7
Den er væk nu! nu kan jeg bare ikke vælge fra hardware
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 10:59 #8
Satte lige || die(mysql_error()); ind i min sql sætning nu får jeg denne fejl

Table 'hardware.tabel' doesn't exist
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 11:01 #9
Det er her det går galt "FROM tabel"
Avatar billede arne_v Ekspert
08. august 2003 - 11:18 #10
Øh.

Har du en tabel med navn tabel ?

Jeg tro det skal være:

... FROM hardware JOIN leveringsoplysninger ...

!
Avatar billede tsearex66666 Nybegynder
08. august 2003 - 11:21 #11
Nu får jeg ikke fejl i sql sætningen:

$result = mysql_query("SELECT hardware.ordrenr, hardware.navn, leveringsoplysninger.ordrenr, leveringsoplysninger.bestiltdato, leveringsoplysninger.navn, leveringsoplysninger.fullname FROM hardware  JOIN leveringsoplysninger ON hardware.ordrenr=leveringsoplysninger.ordrenr  ") || die(mysql_error()); 

Men nu får jeg denne fejl:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in sys:/apache/htdocs/thomas/hardware bestilling/1oversigt_bestillinger.php on line 93
Avatar billede Lasse S Novice
08. august 2003 - 14:18 #12
det betyder, at selve query'en er gået fint (ingen fejlmeddelelser), mens din fetch_array går galt, fordi argumentet ikke er iorden... det lyder som om, der ikke returneres noget array/rækker

prøv at køre forespørgslen i dit phpmyadmin-interface, hvis du har et sådant og se hvad der kommer frem...
Avatar billede tsearex66666 Nybegynder
11. august 2003 - 08:38 #13
Det har jeg gjort og den retunere de rigtige rækker.
Avatar billede arne_v Ekspert
11. august 2003 - 09:14 #14
Så er det jo et PHP og ikke et MySQL problem.
Avatar billede tsearex66666 Nybegynder
11. august 2003 - 14:12 #15
Så må jeg jo hellere lukke i denne kategori og åbne i en anden. Men tak for hjælpen
Avatar billede arne_v Ekspert
11. august 2003 - 14:43 #16
Øh.

Du har da fået 2 korrekte svar.
Avatar billede tsearex66666 Nybegynder
11. august 2003 - 14:56 #17
Du har ret, hvordan giver jeg jer nogle point nu?
Avatar billede arne_v Ekspert
11. august 2003 - 15:06 #18
Du kan oprette et nyt spørgsmål med "Point til X og Y" og et link
til dette spørgsmål og så give et passende antal point.
Avatar billede tsearex66666 Nybegynder
11. august 2003 - 15:28 #19
Er gjort!
Avatar billede erikjacobsen Ekspert
11. august 2003 - 15:35 #20
Prøv lige at vise linierne omkring din mysql_fetch_array(), der går galt.
Det er sikkert noget meget simpelt.
Avatar billede morten_leth Nybegynder
11. august 2003 - 15:50 #21
http://www.eksperten.dk/spm/386144 <--- håber det er ok jeg lige ligger et link til jer så ik se hvor det er i verden.... sorry jeg blander mig... smutter igen...
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
Computerworld tilbyder specialiserede kurser i database-management

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