2016-06-26 15 views
0

Ich bin ein Amateur-Programmierer, und ich weiß nur nicht, was mit meiner Frage nicht stimmt. Ich möchte Material für meine Zielseite aus der Datenbank holen, aber wenn ich mehrere Genres habe, erhalte ich mehrere Ergebnisse. Ich denke, es hat etwas mit meiner Frage zu tun. Denken Sie daran, ich bin nicht gut im Programmieren, ich bin auch nicht gut in SQL Ich habe einen Tisch mit Filmen, die 'Filme' genannt werden, der Primärschlüssel ist 'id', der Tisch 'Genres' hat 'Genreid' als Primärschlüssel, und "filmgenre" (wo ich innerlich bin) hat "filmgenreid" als Primärschlüssel. Mein Code:Ich bekomme immer doppelte Ergebnisse.

<?php 
     if(isset($_GET["id"])){ 
      $filmid = $_GET["id"]; 
      $query = mysqli_query($con, "SELECT * 
         FROM filmgenre INNER JOIN genres ON 
         genres.genreid=filmgenre.genreid INNER JOIN 
         films ON films.id=filmgenre.id WHERE films.id = '$filmid'"); 

      while($film = mysqli_fetch_array($query)){ 
       ?> 
       <img class="filmimage" src="<?php echo $film["plaatje"] ?>" /> 
       <h2 class="filmtitle"><?php echo $film["titel"] ?></h2><br> 
       <p class="tijdsduur">Tijdsduur: <?php $film["tijdsduur"] ?> minuten.</p> 
       <iframe width="854" height="480" src="<?php echo $film["trailer"] ?>" frameborder="0" allowfullscreen></iframe> 
       <p class="beschrijving"> <?php echo $film["voorwoord"] ?></p> 
       <p class="producent">Producent <?php echo $film["producent"] ?>.</p> 
       <p class="auteurs">Auteurs: <?php echo $film["auteurs"] ?>.</p> 
       <p class="jaar"><?php echo $film["jaar"] ?>.</p> 
       <?php echo $film["hoofdpersonen"] ?> 
       <?php 

      } 
     } 
     else{ 
      echo "Something went wrong."; 
     } 
     ?> 

Kann jemand helfen?

+0

Vielen Dank Mann bekommen! Das hat den Trick gemacht! –

+0

Sie können ANS akzeptieren, wenn dies funktioniert, indem Sie auf das rechte Häkchen klicken. So dass andere wissen, dass diese Frage resovled – C2486

+0

@SoFabulous für weitere Informationen über die Annahme einer Antwort finden Sie unter: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – chris85

Antwort

0

Verwenden group by,

WHERE films.id = '$filmid'" group by films.id; 
+0

ich würde Fügen Sie auch eine Notiz über SQL-Injektionen hinzu. – chris85

0

Cant wirklich verstehen, was Sie genau wollen aber könnten Sie ein Beispiel geben, was Sie erwarten sollten und was Sie stattdessen

SELECT * FROM filmgenre fg INNER JOIN genres g ON fg.genreid =g.genreid 
INNER JOIN films f ON fg.id = f.id WHERE f.id = '$filmid' GROUP BY g.genreid"; 
Verwandte Themen