2016-08-02 3 views
-3

저는 영화 데이터베이스 프로젝트에서 일하고 있는데, 데이터베이스가 있어야하지만 프런트 엔드 부분에 문제가 있습니다. 마침내 모든 정보를 표시하고 클릭 할 수있게 만들었지 만이 방법을 사용하지 않는 것이 확실합니다.PHP 코드가 데이터베이스의 데이터를 올바르게 표시하지 않습니다.

장르를 표시하는 데 문제가 있습니다. 나는 그 중 하나를 groupconcat하고 모두 표시 할 수 있지만 링크를 가질 수 없거나 개별적으로 링크를 할 수는 있지만 모두 가져올 수는 없습니다. 마침내 그들 모두를 얻었지만, 전화 나 타블렛으로 시도 할 때 나는 다른 장르가 아닌 마지막 장르 만 보았습니다. 그래서 나는 또 다른 데이터베이스를 만들고 모든 데이터를 다시 가져 오기위한 요청을 가져 왔지만, 그것이 옳지 않다는 것을 확신합니다.

<?php 
    require '../database.php'; 
    $Code = null; 
    if (!empty($_GET['Code'])) { 
     $Code = $_REQUEST['Code']; 
    } 

    if (null==$Code) { 
     header("Location: index.php"); 
    } else { 
     $pdo = Database::connect(); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "SELECT Movies.Code, Title, Plot, Movies.Type, Movies.Category, Image, Score, Rated, Alt, Status, YearReleased, Duration, SUBSTRING(Duration, 1, CHAR_LENGTH(Duration) - 3) AS Duration2, TotalEps, Types.code as tcode, Types.Type as ttype, Categories.Code as ccode, Categories.Category as ca, Ratings.Code as rc, Ratings.Rating as rr, Genre, GenreCode FROM Movies, Types, Categories, Ratings, MovieGenres, Genres WHERE Movies.Type=Types.Code AND Movies.Rated=Ratings.Code AND Movies.Category=Categories.Code AND Movies.Code=MovieGenres.MovieCode AND MovieGenres.GenreCode=Genres.Code AND Movies.Code = ?"; 
     $q = $pdo->prepare($sql); 
     $q->execute(array($Code)); 
     $data = $q->fetch(PDO::FETCH_ASSOC); 
     Database::disconnect(); 
    } 
?> 

<!DOCTYPE html> 
<html lang="en"> 

<head> 

    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta name="apple-mobile-web-app-capable" content="yes"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <title>MovieDB - <?php echo $data['Title'];?></title> 

    <!-- Bootstrap Core CSS --> 
    <link href="../css/bootstrap.min.css" rel="stylesheet"> 

    <!-- Custom CSS --> 
    <link href="../css/modern-business.css" rel="stylesheet"> 
    <link href="../css/custom.css" rel="stylesheet"> 
    <!-- Custom Fonts --> 
    <link href="../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> 

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
    <!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
     <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> 
    <![endif]--> 

</head> 

<body> 

    <!-- Navigation --> 
    <?php include '../include/nav.php';?> 

    <!-- Page Content --> 
    <div class="container"> 

     <!-- Page Heading/Breadcrumbs --> 
     <div class="row"> 
      <div class="col-lg-12"> 
       <h2 class="page-header"><?php echo $data['Title'];?> 
       </h2> 
      </div> 
     </div> 
     <!-- /.row --> 

     <!-- Portfolio Item Row --> 
     <div class="row"> 
      <div class="col-md-4"> 
       <img class="img-responsive" src="../Images/<?php echo $data['Image'];?>" alt=""> 
      </div> 


<div class="col-md-8 hidden-sm hidden-xs"> 
    <ul class="nav nav-tabs"> 
     <li class="active"><a data-toggle="tab" href="#Plot">Plot</a></li> 
     <li><a data-toggle="tab" href="#Details">Details</a></li> 
    </ul> 
    <div class="tab-content"> 
     <div id="Plot" class="tab-pane fade in active"> 
      <p><?php echo $data['Plot'];?></p> 
     </div> 
     <div id="Details" class="tab-pane fade"> 
<?php 
      echo'<li>Alternative Title: '. $data['Alt'] .'</li>'; 
      echo'<li>Type: <a href="../list/type.php?Code='. $data['tcode'] .'&Type='. $data['ttype'] .'">'. $data['ttype'] .'</a></li>'; 
      echo'<li>Rated: <a href="../list/rating.php?Code='. $data['rc'] .'&Rating='. $data['rr'] .'">'. $data['rr'] .'</a></li>'; 
      echo'<li>Episodes: '. $data['TotalEps'] .'</li>'; 
      echo'<li>Duration: '. $data['Duration2'] .'</li>'; 
      echo'<li>Genre: '; 
      echo'<a href="../list/genre.php?GenreCode='. $data['GenreCode'] .'&Genre='. $data['Genre'] .'">'. $data['Genre'] .'</a>'; 
      foreach($q as $data){ 
       echo", "; 
      echo'<a href="../list/genre.php?GenreCode='. $data['GenreCode'] .'&Genre='. $data['Genre'] .'">'. $data['Genre'] .'</a>'; 
      } 
      echo '</li>'; 
      echo'<li>Status: '. $data['Status'] .'</li>'; 
      echo'<li>Category: <a href="../list/categories.php?Code='. $data['ccode'] .'&Category='. $data['ca'] .'">'. $data['ca'] .'</a></li>'; 
      echo'<li>Year Released: <a href="../list/year.php?Year='. $data['YearReleased'] .'">'. $data['YearReleased'] .'</a></li>'; 
      echo'<li>Score: '. $data['Score'] .'</li>'; 
      ?> 
     </div> 
    </div> 
</div> 

<div class="col-md-4 hidden-md hidden=-lg"> 
    <h3>Plot</h3> 
    <p><?php echo $data['Plot'];?></p> 
</div> 
<div class="col-md-4 hidden-md hidden=-lg "> 
    <h3>Details</h3> 
    <ul> 
    <?php 
     $pdo = Database::connect(); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "SELECT Movies.Code, Title, Plot, Movies.Type, Movies.Category, Image, Score, Rated, Alt, Status, YearReleased, Duration, SUBSTRING(Duration, 1, CHAR_LENGTH(Duration) - 3) AS Duration2, TotalEps, Types.code as tcode, Types.Type as ttype, Categories.Code as ccode, Categories.Category as ca, Ratings.Code as rc, Ratings.Rating as rr, Genre, GenreCode FROM Movies, Types, Categories, Ratings, MovieGenres, Genres WHERE Movies.Type=Types.Code AND Movies.Rated=Ratings.Code AND Movies.Category=Categories.Code AND Movies.Code=MovieGenres.MovieCode AND MovieGenres.GenreCode=Genres.Code AND Movies.Code = ?"; 
     $q = $pdo->prepare($sql); 
     $q->execute(array($Code)); 
     $data = $q->fetch(PDO::FETCH_ASSOC); 
     Database::disconnect(); 

      echo'<li>Alternative Title: '. $data['Alt'] .'</li>'; 
      echo'<li>Type: <a href="../list/type.php?Code='. $data['tcode'] .'&Type='. $data['ttype'] .'">'. $data['ttype'] .'</a></li>'; 
      echo'<li>Rated: <a href="../list/rating.php?Code='. $data['rc'] .'&Rating='. $data['rr'] .'">'. $data['rr'] .'</a></li>'; 
      echo'<li>Episodes: '. $data['TotalEps'] .'</li>'; 
      echo'<li>Duration: '. $data['Duration2'] .'</li>'; 
      echo'<li>Genre: '; 
      echo'<a href="../list/genre.php?GenreCode='. $data['GenreCode'] .'&Genre='. $data['Genre'] .'">'. $data['Genre'] .'</a>'; 
      foreach($q as $data){ 
       echo", "; 
      echo'<a href="../list/genre.php?GenreCode='. $data['GenreCode'] .'&Genre='. $data['Genre'] .'">'. $data['Genre'] .'</a>'; 
      } 
      echo '</li>'; 
      echo'<li>Status: '. $data['Status'] .'</li>'; 
      echo'<li>Category: <a href="../list/categories.php?Code='. $data['ccode'] .'&Category='. $data['ca'] .'">'. $data['ca'] .'</a></li>'; 
      echo'<li>Year Released: <a href="../list/year.php?Year='. $data['YearReleased'] .'">'. $data['YearReleased'] .'</a></li>'; 
      echo'<li>Score: '. $data['Score'] .'</li>'; 
      ?> 
    </ul> 
    </div> 
</div> 

     <!-- /.row --> 



     <hr> 

     <!-- Footer --> 
    <?php include '../include/footer.php';?> 

    <!-- /.container --> 

    <!-- jQuery --> 
    <script src="../js/jquery.js"></script> 

    <!-- Bootstrap Core JavaScript --> 
    <script src="../js/bootstrap.min.js"></script> 
</body> 

</html> 

는 형식의 : 당신은 쿼리에서 반환 된 행에 걸쳐 반복되지 않습니다

SELECT Movies.Code, Title, Plot, Movies.Type, Movies.Category, Image, Score, Rated, Alt, Status, YearReleased, Duration, SUBSTRING(Duration, 1, CHAR_LENGTH(Duration) - 3) AS Duration2, TotalEps, Types.code as tcode, Types.Type as ttype, Categories.Code as ccode, Categories.Category as ca, Ratings.Code as rc, Ratings.Rating as rr, Genre, GenreCode 
FROM Movies, Types, Categories, Ratings, MovieGenres, Genres 
WHERE Movies.Type=Types.Code 
AND Movies.Rated=Ratings.Code 
AND Movies.Category=Categories.Code 
AND Movies.Code=MovieGenres.MovieCode 
AND MovieGenres.GenreCode=Genres.Code 
AND Movies.Code = ?; 

SELECT Genre, GenreCode 
FROM MovieGenres, Genres 
WHERE MovieGenres.GenreCode=Genres.Code 
AND MovieCode = ?; 
+0

검색어를 구체화하십시오. – Strawberry

+0

더 좋습니까? –

답변

0

.

당신은 같은 것을 할 것이 답변 https://stackoverflow.com/a/160365/6632744

에서 보라 :

while ($row = $q->fetch(PDO::FETCH_ASSOC)) { 
    echo'<a href="../list/genre.php?GenreCode='. $row['GenreCode'] .'&Genre='. $row['Genre'] .'">'. $row['Genre'] .'</a>'; 
} 

을 그리고 당신은 당신의 초기 가져 벗겨 할 수 있습니다.

$data = $q->fetch(PDO::FETCH_ASSOC); // remove this line 
+0

나는 그것이 foreach ($ q $ 데이터) { echo ",";와 함께하고 있다고 생각했습니다. echo ''. $data['Genre'] .''; } –

+0

아니요, 하나의 결과 만 반복하므로 하나의 행만 수신됩니다. '$ q-> fetch'는 한 행만 검색합니다. 그 줄을 제거하고 while 루프를 넣는 것이 좋습니다. 나는 코드 조각을 포함하는 나의 대답을 업데이트 할 것이다 – Joundill

+0

많은 도움을 주었고 내가 찾고 있던 것이었다! 도움에 정말 감사드립니다. 내가 위의 while 루프를 $ z = $ pdo-> prepare ($ sql3)와 같이 사용할 수있는 다른 sql 쿼리를 이해하는 데 적합할까요? $ z-> execute (array ($ Code)); @Joundill –

관련 문제