gpt4 book ai didi

php - 如何使用主键从表中选择多个数据?

转载 作者:行者123 更新时间:2023-11-29 21:16:33 24 4
gpt4 key购买 nike

嗨,我目前正在制作一个微型网站,我终于可以处理来自数据库的数据并在我需要的地方显示。我的微型网站都是关于英国历史上不同君主的。我正在使用引导选项卡来显示英国历史上的每栋房屋。如下图所示。

Screenshot of Site

然而,第一部分我没有问题,但在“丹麦”选项卡中,我只有 3 个君主与这座房子相关,但当我尝试创建一个新功能来满足这一需求时,它会影响所有选项卡。

型号

public function fetchAll() {
$sqlQuery = 'SELECT * FROM monarchy WHERE MonarchyID BETWEEN 1 AND 18';
$statement = $this->_dbHandle->prepare($sqlQuery);
$statement->execute();

$dataSet = [];
while($row = $statement->fetch()) {
$dataSet[] = new MonarchData($row);
}
return $dataSet;
}

模型中的丹麦函数

public function fetchDenmark() {
$sqlQuery = 'SELECT * FROM monarchy WHERE MonarchyID BETWEEN 19 AND 21';
$statement = $this->_dbHandle->prepare($sqlQuery);
$statement->execute();

$dataSet = [];
while($row = $statement->fetch()) {
$dataSet[] = new MonarchData($row);
}
return $dataSet;
}

Controller

<?php
require_once('Model/MonarchData.php');
require_once('Model/MonarchDataSet.php');

session_start();
$view = new stdClass();
$view->pageTitle = 'Brit Monarch';

$monarchDataSet = new MonarchDataSet();
$view->MonarchDataSet = $monarchDataSet->fetchAll();


require_once('View/monarchy.phtml');

HTML

<div id="monarchContainer">
<?php
foreach ($view->MonarchDataSet as $MonarchDataSet) {
?>
<div id="monarch">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"
style="font-family: fantasy; font-style: initial; font-weight: lighter; text-align: center;">
<?php echo '<p>' . $MonarchDataSet->getMonarch() . '</p>'; ?>
</h3>
</div>
<div class="panel-body">
<?php
?>

</div>
</div>
</div>

<?php } ?>
</div>
</div>

如何使用 foreach 语句使我想要的数据出现在每个选项卡中而不影响所有其他选项卡?

任何建议都会很棒。

最佳答案

您可以添加一些名为 MonarchyType 的列:

ALTER TABLE monarchy add COLUMN MonarchyType TEXT;

因此,您的模型可能有一种方法来查找所有君主制或仅按 MonarchyType 查找部分君主制:

public function fetchAll($type = false) {
if(!$type) {
$sqlQuery = 'SELECT * FROM monarchy';
$statement = $this->_dbHandle->prepare($sqlQuery);
} else {
$sqlQuery = 'SELECT * FROM monarchy WHERE MonarchyType = :MonarchyType';
$statement = $this->_dbHandle->prepare($sqlQuery);
$statement->bindValue(':MonarchyType', $type);
}

$statement->execute();

$dataSet = [];
while($row = $statement->fetch()) {
$dataSet[] = new MonarchData($row);
}
return $dataSet;
}

在您的应用程序 Controller 中,您只能找到所需的 monachie:

$view->MonarchDataSet = $monarchDataSet->fetchAll('Danish');

或者您可以在应用 Controller 中找到所有君主制,并在应用 View 中检查所有模型的 MonarchyType 并仅显示适当的模型

关于php - 如何使用主键从表中选择多个数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35889380/

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