如何使用表的ID从数据库中检索某些信息以提取某些信息?

时间:2016-03-03 20:45:17

标签: php sql pdo

我目前正在做一个小型网络项目,我正在努力从数据库中获取个人名称,以显示在我网站的不同面板中。我需要的表中有18个不同的名称,我需要在18个单独的面板中显示它们,如Screenshot of Panels所示。

我正在使用MvC并在我的模型中使用此SQL语句 -

public function fetchMonarch($Monarch, $MonarchID)
 {
     $sqlQuery = "SELECT * FROM monarchy WHERE Monarch = '" . $Monarch ."'AND MonarchID = '".$MonarchID."'";

     $statement = $this->_dbHandle->prepare($sqlQuery); //Prepare PDO statement
     $statement->execute(); //Executes PDO statement

     $dataSet = [];
     while ($row = $statement->fetch()) { //Fetches the next row matching the query
         $dataSet[] = new LoginData($row);
     }

     return $dataSet;
 }

如何在我的控制器中进行设置,以便我可以使用Session访问每个面板中我想要的名称?

任何关于如何做到这一点的想法即使你认为我可能会错误地解决这个问题也会是一个巨大的帮助,因为我遇到了麻烦。

这是我在HTML中的面板代码 -



<div id="monarch1">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            <h3 class="panel-title">Panel Title</h3>
                        </div>
                        <div class="panel-body">
                            Panel content
                        </div>
                    </div>
                </div>
                 <div id="monarch2">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            <h3 class="panel-title">Panel title</h3>
                        </div>
                        <div class="panel-body">
                            Panel content
                        </div>
                    </div>
                </div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

我相信你所追求的解决方案是这样的:

$dataSet = [];
while ($row = $statement->fetch()) { //Fetches the next row matching the query
    $dataSet[$row['MonarchID'] = new LoginData($row); // note the ID
}

然后在你的HTML中:

foreach ($dataSet as $id=>$monarch){
    echo '<div id="monarch2">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">'.$monarch->objectData.'</h3>
        </div>
        <div class="panel-body">
            '.$monarch->objectData.'
        </div>
    </div>
    </div>';
}

$ monarch-&gt; objectData会在LoginData($ row)中引用你的键,或者在$ allData中存储一个新键[&#39; MonarchID&#39;] = $ row;然后在$ alldata而不是$ monarch-&gt; objectData上使用$ monarch [&#39; FieldInfo&#39;]。

如果您需要专门放置元素 - 在SQL中使用排序,或者您可以访问$ dataSet [&#39; MonarchID&#39;] - &gt; objectData将您的内容放在特定位置。