我正在尝试使用从获取cat_id获取的Id获取所有行:
$doc = $results->fetch(PDO::FETCH_ASSOC);
如果我只是使用:
$doc = $results->fetchAll(PDO::FETCH_ASSOC);
它将单行提取为
但是,如果我使用:
Notice: Undefined index: doc_id in /Applications/MAMP/htdocs/dashboardr v3.1.7/catView.php on line 126
Notice: Undefined index: doc_title in /Applications/MAMP/htdocs/dashboardr v3.1.7/catView.php on line 126
我收到以下错误?
var_dump($doc);
但是如果我array(2) { [0]=> array(3) { ["doc_title"]=> string(5) "dsfsd" ["cat_no"]=> string(1) "4" ["doc_id"]=> string(2) "72" } [1]=> array(3) { ["doc_title"]=> string(14) "Adams Test Doc" ["cat_no"]=> string(1) "4" ["doc_id"]=> string(3) "120" } }
它确实返回值:
<?php include 'header.php'; ?>
<?php require_once '../db_con.php';
if(!empty($_GET['cat_id'])){
$cat = intval($_GET['cat_id']);
try{
$results = $dbh->prepare("SELECT doc_list.doc_title, doc_list.cat_no, doc_id FROM doc_list WHERE cat_no = ?");
$results->bindParam(1, $cat);
$results->execute();
} catch(Exception $e) {
echo $e->getMessage();
die();
}
$doc = $results->fetch(PDO::FETCH_ASSOC);
if($doc == FALSE){
echo '<div class="container">';
echo "<img src='../img/404.jpg' style='margin: 40px auto; display: block;' />";
echo "<h1 style='margin: 40px auto; display: block; text-align: center;' />Oh Crumbs! You upset the bubba!</h1>";
echo '<a href="userList.php" style="margin: 40px auto; display: block; text-align: center;">Get me outta here!</a>';
echo'</div>';
die();
}
}
?>
<h3 class="subTitle"><i class="fa fa-file-text"></i> </span>Document List</h3>
<p><?php
var_dump($doc);
echo '<a href="docView.php?doc_id='.$doc["doc_id"].'">'.$doc['doc_title'].'</a>' ?></p>
I WANT ALL MY RESULTS LISTED HERE
</div>
</div>
我真的很困惑?
更新
*.tar.gz
答案 0 :(得分:4)
因为使用fetch()
总是会得到一行,所以你必须把它放到一个循环中,如下所示迭代所有行:
while($doc = $results->fetch(PDO::FETCH_ASSOC)) {
//your code
}
使用fetchAll()
,您可以将所有行同时放入一个单独的数组中,因此您必须遍历数组,例如。
$doc = $results->fetchAll(PDO::FETCH_ASSOC);
foreach($doc as $v) {
//your code
}