Avatar billede mpj_86 Nybegynder
09. april 2006 - 18:20 Der er 7 kommentarer og
1 løsning

Udskriv ud fra 2 tabler fra databasen?

Hej

Jeg har denne kode som udskriver de forskelige racer:

$query=mysql_query("SELECT id,race FROM racer ORDER BY race ASC") or die (mysql_error());

Jeg har også en table som hedder heste, i den er der bla. en der hedder race_id som er det samme som id i racer.

Jeg vil gerne have den til, kun at udskrive navene på de racer som er i heste under race_id.
Avatar billede coderdk Praktikant
09. april 2006 - 18:58 #1
$query=mysql_query("SELECT DISTINCTROW id, race FROM racer INNER JOIN heste ON racer.id = heste.race_id ORDER BY race ASC") or die (mysql_error());
Avatar billede mpj_86 Nybegynder
09. april 2006 - 19:02 #2
Det virker ikke, og den skriver ikke nogle fejl melding..
Avatar billede mpj_86 Nybegynder
09. april 2006 - 19:03 #3
Hele koden ser sådan ud:

        <?php
        $query=mysql_query("SELECT DISTINCTROW id, race FROM racer INNER JOIN heste ON racer.id = heste.race_id ORDER BY race ASC") or die (mysql_error());
        echo '<option value="0">Vis alle</option>';
            while($row = mysql_fetch_array($query)) {
                if($id == $row['id']) {
                    echo '<option selected value="'.$row['id'].'">'.$row['race'].'</option>';                   
                } else {
                echo '<option value="'.$row['id'].'">'.$row['race'].'</option>';
            }
        }
        ?>
Avatar billede coderdk Praktikant
09. april 2006 - 19:14 #4
Det lyder som om at der ikke er nogen racer med id'er der matcher heste.race_id
Avatar billede mpj_86 Nybegynder
09. april 2006 - 19:18 #5
Jo, der er nogle..

Udskrift fra db:

CREATE TABLE `heste` (
  `id` int(11) NOT NULL auto_increment,
  `race_id` int(11) NOT NULL default '0',
  `type` varchar(50) character set latin1 collate latin1_danish_ci NOT NULL,
  `aargang` varchar(4) character set latin1 collate latin1_danish_ci NOT NULL,
  `navn` varchar(50) character set latin1 collate latin1_danish_ci NOT NULL,
  `stangmaal` varchar(4) character set latin1 collate latin1_danish_ci NOT NULL,
  `afstamning` varchar(150) character set latin1 collate latin1_danish_ci NOT NULL,
  `dressur` varchar(50) character set latin1 collate latin1_danish_ci NOT NULL,
  `spring` varchar(50) character set latin1 collate latin1_danish_ci NOT NULL,
  `farve` varchar(50) character set latin1 collate latin1_danish_ci NOT NULL,
  `pris` varchar(6) character set latin1 collate latin1_danish_ci NOT NULL,
  `beskrivelse` longtext character set latin1 collate latin1_danish_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Data dump for tabellen `heste`
--

INSERT INTO `heste` VALUES (1, 32, 'Pony', '2001', 'Hest :P', '400', '?', '??', '???', 'Brun', '87000', 'Beskrivelsen kommer til at stå her...');
INSERT INTO `heste` VALUES (2, 32, '', '1998', 'hest 2', '300', '', '', '', 'Sort', '90000', '');
INSERT INTO `heste` VALUES (3, 23, '', '1997', 'hest 4', '56', '', '', '', 'Sort', '75000', '');
Avatar billede coderdk Praktikant
09. april 2006 - 19:35 #6
Prøv lige:

$query = mysql_query("SELECT DISTINCTROW r.id, r.race FROM racer AS r INNER JOIN heste AS h ON r.id = h.race_id ORDER BY r.race ASC") or die (mysql_error());

Det burde altså virke. Du er sikker på at du har nogle racer med id 32 og 23?
Avatar billede mpj_86 Nybegynder
09. april 2006 - 19:37 #7
Det virker perfekt..

Mange tak mester..

Smid et svar.
Avatar billede coderdk Praktikant
09. april 2006 - 19:44 #8
Skide godt :)
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