gpt4 book ai didi

php - 从多个表获取信息到一个 div(HTML、PHP 和 MySQL)

转载 作者:行者123 更新时间:2023-11-29 14:38:01 24 4
gpt4 key购买 nike

我正在为特定文件制作一个电影预订/观看网站。有多个相同和不同格式(vcd、dvd、vhs)的电影。数据库中有两个表,一个仅用于电影的标题、导演等一般信息,另一个表专门用于电影的信息。磁盘如字幕、语言、磁盘数量。

我在显示搜索结果时创建了一个 div。搜索结果中只有电影名称,并且它们附近有一个展开按钮,单击该按钮时,页面右侧会出现一个信息 div,显示有关电影的所有信息。但是,我上面提到的多部电影都存在一个问题。我无法为多部电影做到这一点。

我希望页面仅显示重复电影的一个标题,当我单击展开按钮时,我希望它显示重复电影的所有副本的所有详细信息(可能有一个下拉框,并且用户选择格式然后根据选择显示信息)

我该怎么做?数据库函数和 php 代码是什么?

我对各种想法或代码持开放态度

谢谢

最佳答案

简短的答案是 $mysqli 或 $mysql 返回多行,您需要循环遍历它们。

一个不错的初始方法可能是。请注意,这并未经过优化(您可能希望在单个 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>

关于php - 从多个表获取信息到一个 div(HTML、PHP 和 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8594438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com