Avatar billede helene100 Nybegynder
31. december 2008 - 15:43 Der er 9 kommentarer

Udtræk fra flere tabeller!

Hej Eksperter!

Først skal jeg lige pointere, at jeg er en novice inden for PHP programmering :-)

Jeg har en DB. (MySQL) med navnet "mad" den indeholder 3 tbl. med navnene "forretter", "hovedretter" og "desserter".

Jeg ønsker et udtræk der først viser alle forretter, derefter alle hovedretter og slutteligt alle desserter.

På forhånd tak, og godt nytår.

Helene
Avatar billede htx98i17 Professor
31. december 2008 - 16:03 #1
<?

    mysql_connect("localhost","brugernavn","adgangskode");
    mysql_select_db("mad");
   
    $hentposter = mysql_query("SELECT * FROM forretter,hovedretter,desserter ORDER BY forretter.id,hovedretter.id,desserter.id");
   
    while($post = mysql_fetch_array($hentposter))  {
       
        echo$post['id']."<br>";
       
    }
   
?>
Avatar billede erikjacobsen Ekspert
31. december 2008 - 22:54 #2
Næppe nogen løsning ;)

Lav bare 3 separate SELECT sætning, een til hver tabel, og skriv resultatet ud for hver.

Og en anden gang: lav een tabel, med et felt, der fortæller om det er en forret, hovedret, eller dessert. Meget nemmere at håndtere i SQL.
Avatar billede helene100 Nybegynder
01. januar 2009 - 12:53 #3
Hej igen og rigtigt godt nytår!!

Mange tak for de meget hurtige svar, jeg havde dog allerede taget forskud på aftenens glæder :-)

For at være helt nøjagtig, så skal jeg hente 3 informationer fra hver tabel, nemlig rettens nr. rettens navn, samt en pris.

Hvad er der galt med htx98i17 forslag??

Mit udtræk skal benyttes til dannelsen af et menukort, måske ikke nogen overraskelse??

Jeg er helt blank og ønsker blot lidt starthjælp :-)

Helene
Avatar billede erikjacobsen Ekspert
01. januar 2009 - 13:07 #4
Forslaget fra htc98i17 vil ikke virke. Jeg vil foreslå ham at læse op på JOINs. ;)

Starthjælp: lav 3 separate udtræk. Meget simpelt.
Avatar billede helene100 Nybegynder
01. januar 2009 - 13:17 #5
Nej, jeg har erfaret at htc98i17 forslag ikke fungerer.

Jeg tror jeg følger dit forslag omk. at lave een tabel. En DB. med navnet "MAD", jeg havde herefter forestillet mig et felt med navnet "TYPE", dette dækker over for- hovedret eller dessert.

Går udfra at det er det du mener?

Helene
Avatar billede helene100 Nybegynder
01. januar 2009 - 13:18 #6
Iøvrigt mange tak for din hurtige svartid :-)
Avatar billede htx98i17 Professor
01. januar 2009 - 13:31 #7
Erik nu må du omformulere dig eller uddybe. Jeg synes umiddelbart dit udsagn er urimeligt.
Avatar billede erikjacobsen Ekspert
01. januar 2009 - 13:48 #8
Jeg skal gerne omformulere: Forslaget fra htc98i17 vil næppe virke. Jeg vil anbefale ham at læse op på JOINs. ;)

Ja, helene100, noget i retning af en tabel "mad", med et "type"-felt. Jeg synes det er nemmere.
Avatar billede carstensuurland Nybegynder
01. januar 2009 - 14:39 #9
JOINS er ikke løsningen her.
Jeg ved ikke om MySQL understøtter det, men skal du have dine resultater i ét udtræk, skal du kigge på en UNION. Den tager fra X tabeller og returnerer ét resultat.

Dog undrer dit databasedesign mig en del... Hvorfor ligge de tre typer af retter i tre tabeller? Et felt i tabellen som angiver om det er den ene eller anden type ret, er den korrekte løsning.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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