Avatar billede delphiuser Mester
28. juli 2010 - 12:48 Der er 2 kommentarer og
1 løsning

viser ikke det som den skal

Hej eksperter.

Jeg er igang med at lave et lille film arkiv i php med mysql. alt virker indtil nu fint.

Men da jeg skulle se listen med film som er tilføjet arkivet udskrives den samme film flere gange med forskellige genre hvilket den ikke skal gøre.

jeg har lavet 2 tabeller en til genre og en til film.

genre tabel

CREATE TABLE `film_genre` (
  `genre_id` int(11) NOT NULL auto_increment,
  `genre` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`genre_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

film tabellen kommer her

CREATE TABLE `film` (
  `film_id` int(11) NOT NULL auto_increment,
  `film_title` varchar(255) NOT NULL default '',
  `film_genre` varchar(100) NOT NULL default '',
  `film_tid` varchar(20) NOT NULL default '',
  `film_indhold` longtext NOT NULL,
  `film_billed` varchar(255) default NULL,
  `film_dato` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`film_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

mit problem er som beskrevet at den samme film kommer flere gange med forskellige genre. den skal jo kun forkomme en gang med den genre som den har tildelt.

her kommer mit php script.

<table border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
    <td width="50" align="center">ID</td>
    <td width="300" align="center">Film Titel</td>
    <td width="150" align="center">Film Genre</td>
    <td width="100" align="center">Dato</td>
</tr>
<?php
$film = mysql_query("select * from film, film_genre order by film_id") or die(mysql_error());
if(mysql_num_rows($film)) {
    while($row = mysql_fetch_array($film)) {
        echo '<tr><td align="center">'.$row['film_id'].'</td><td align="center">'.$row['film_title'].'</td><td align="center">'.$row['genre'].'</td><td align="center">'.$row['film_dato'].'</td></tr>';
    }
} else {
    echo '<tr><td colspan="4">Der er ikke nogen film endnu...</td></tr>';
}
?>
</table>

som det ses trækker jeg data ud fra to tabeller. og det er de to tabeller jeg har lavet en sql dunp af til jer.
håber i kan hjælpe mig.

På forhånd tak for hjælpen

Delhiuser
Avatar billede delphiuser Mester
28. juli 2010 - 13:01 #1
har selv fundet fejlen. men ellers tak for hjælpen
Avatar billede Slettet bruger
28. juli 2010 - 13:07 #2
Hvad var fejlen så?
Avatar billede delphiuser Mester
28. juli 2010 - 13:09 #3
jeg manglede at lave en where lykke i min query

<?php
$film = mysql_query("select * from film, genre where film_genre=genre_id order by film_id") or die(mysql_error());
if(mysql_num_rows($film)) {
    while($row = mysql_fetch_array($film)) {
        echo '<tr><td align="center">'.$row['film_id'].'</td><td align="center">'.$row['film_title'].'</td><td align="center">'.$row['genre'].'</td><td align="center">'.$row['film_dato'].'</td></tr>';
    }
} else {
    echo '<tr><td colspan="4">Der er ikke nogen film endnu...</td></tr>';
}
?>
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