私はサイドプロジェクトに取り組んでおり、ここ数日で素晴らしい進歩を遂げましたが、問題にぶつかりました。私はPHP、mysql、およびブートストラップで作業しています。サイドプロジェクトは映画コレクションを扱っています。私はどのようにしたいのかを示す情報の大部分を得ましたが、ジャンルはありません。私はmysql側でgroupconcatを使ってすべてのジャンルを表示することができますが、ユーザーがそれらをクリックして、そのジャンルのすべての映画を含むページを表示できるように、それらをリンクにしたいと思います。私がgroupconcatを使わないと、私はちょうど1つのジャンルを表示します。PHPで情報を表示するのにヘルプが必要
テーブルがデータベースにどのように設定されているかを示します。
映画には、プロット、期間、種類、カテゴリなどのすべての基本情報が含まれています。主キーはコード列です。 ジャンルは、すべてのジャンル情報を保持する別のテーブルです。また、コードpkを持っています。 次に、両方をリンクするMovieGenresテーブルがあります。
ムービー |コード| PK |
ジャンル |コード| PK | |ジャンル| |完全なジャンル名
MovieGenres | MovieCode | PK | | GenreCode | PK |
ご協力いただければ幸いです!あなたのSQLはすべてを選択しかし
Movies { Code(PK), ... }
Genres { Code(PK), Genre, Full_Genre_Name }
MovieGenres { MovieCode, GenreCode }
、それは同じ映画の複数行のデータが含まれています。ここでは
は、サイトの一部のための私のコードは
<?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
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">
<li>Alternative Title: <?php echo $data['Alt'];?></li>
<li>Type: <a href="../list/type.php?Code=<?php echo $data['tcode'];?>&Type=<?php echo $data['ttype'];?>"><?php echo $data['ttype'];?></a></li>
<li>Rated: <a href="../list/rating.php?Code=<?php echo $data['rc'];?>&Rating=<?php echo $data['rr'];?>"><?php echo $data['rr'];?></a></li>
<li>Episodes: <?php echo $data['TotalEps'];?></li>
<li>Duration: <?php echo $data['Duration2'];?></li>
<li>Status: <?php echo $data['Status'];?></li>
<li>Genre: <?php echo $data['Genre'];?></li>
<li>Category: <a href="../list/categories.php?Code=<?php echo $data['ccode'];?>&Category=<?php echo $data['ca'];?>"><?php echo $data['ca'];?></a></li>
<li>Year Released: <a href="../list/year.php?Year=<?php echo $data['YearReleased'];?>"><?php echo $data['YearReleased'];?></a></li>
<li>Score: <?php echo $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>
<li>Alternative Title: <?php echo $data['Alt'];?></li>
<li>Type: <a href="../list/type.php?Code=<?php echo $data['tcode'];?>&Type=<?php echo $data['ttype'];?>"><?php echo $data['ttype'];?></a></li>
<li>Rated: <a href="../list/rating.php?Code=<?php echo $data['rc'];?>&Rating=<?php echo $data['rr'];?>"><?php echo $data['rr'];?></a></li>
<li>Episodes: <?php echo $data['TotalEps'];?></li>
<li>Duration: <?php echo $data['Duration'];?></li>
<li>Genre: <?php echo $data['Genre'];?></li>
<li>Status: <?php echo $data['Status'];?></li>
<li>Category: <a href="../list/categories.php?Code=<?php echo $data['ccode'];?>&Category=<?php echo $data['ca'];?>"><?php echo $data['ca'];?></a></li>
<li>Year Released: <a href="../list/year.php?Year=<?php echo $data['YearReleased'];?>"><?php echo $data['YearReleased'];?></a></li>
<li>Score: <?php echo $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>
お返事ありがとうございます。私はそれについて考えましたが、それをPHPで実装する方法を知らなかった –
今、私はあるタブセクションのプロットと別のセクションの詳細を持っており、詳細セクションにジャンルを入れたいと思います。 –
元の質問に対するこの回答が正しい場合は、それを受け入れて、さらに問題がある場合は新しい質問を投稿してください – e4c5