短い答えは$ mysqliのか、$ mysqlは複数の行を返し、あなたがそれらを介してループする必要があるということです。
まともな初期のアプローチかもしれません。これは最適化されていないことに注意してください(1つのWHERE INリクエストですべてのディスクのすべてのディスクを取得して割り当てたいと思うかもしれませんが、これが最初です)。 :
id (PRIMARY KEY)
title
director
ディスクテーブル
id (PRIMARY KEY)
film_id
subtitle
language
PHP:あなたは私たちトンのためのいくつかのサンプルコードを
class DB {
private static $mysqli;
public static function getDB() {
if(!isset($this->mysqli)) {
$this->mysqli = new mysqli('localhost','user','password','db');
}
return $this->mysqli();
}
public static function closeDB() {
$mysqli->close();
unset($mysqli);
}
}
class Disk {
private $id;
private $film_id;
private $subtitle;
private $language;
public static function GetByFilmId($id) {
$id= DB::getDB()->real_escape_string($id);
$query = sprintf("SELECT * FROM movie where title = '%i1'",$id);
$result = DB::getDB()->query($query);
$disks = array();
while ($disk = $result->fetch_object("Disk")) {
$disks[] = $disk;
}
$result->close();
return $disks;
}
public render() {
?>
<div class="disk">
<div><?php echo $this->subtitle; ?></div>
</div>
<?php
}
}
class Movie {
private $id;
private $title;
private $director;
public static function GetByTitle($title) {
$title = DB::getDB()->real_escape_string($title);
$query = sprintf("SELECT * FROM movie where title = '%s1'",$title);
$result = DB::getDB()->query($query);
$movies = array();
while ($movie = $result->fetch_object("Movie")) {
$movies[] = $movie;
}
$result->close();
return $movies;
}
public __construct() {
$this->getDisks();
}
public getDisks() {
$disks = Disks::GetByFilmId($this->id);
}
public render() {
?>
<div class="movie">
<div><?php echo $this->title; ?></div>
<div class="disks">
<?php
foreach($disks as $disk) {
$disk->render();
}
?>
</div>
<?php
}
}
$movies = Movie::GetByTitle($_GET['title']);
DB::closeDB();
?>
<html>
<head>
<title>MovieLand :: Movies Named <?php echo $_GET['title']; ?></title>
</head>
<body>
<h1>A List of Movies</h1>
<div class="movies">
<?php
foreach($movies as $movie) {
$movie->render();
}
?>
</div>
</body>
</html>
を提供することができます私たちの頭を包み込む? – PseudoNinja
ムービーが重複していると、dbスキーマの再検討が必要な場合があります。映画を分ける方がいいかもしれないので、タイトルは1つだけです。代わりに、ムービーには多対多の関係になる 'format'フィールドがあります。これにより、重複を取り除き、DB構造を正常化することができます。 – dm03514