带有选定数据的循环表单

时间:2016-04-30 07:45:01

标签: php mysql pdo

我目前需要创建一个自动填充的表,具体取决于数据库中有多少实体。

我目前有一个简单的select语句;

   $articleID = $_GET['id'];
   $stmt = $pdo->query('SELECT * FROM article WHERE articleID = "' .    $articleID . '"');
   $result = $stmt->fetch(PDO::FETCH_ASSOC);
   $stmt2 = $pdo->query('SELECT * FROM comments WHERE artID = "' . $articleID . '"');
   $result2 = $stmt2->fetch(PDO::FETCH_ASSOC);

我尝试使用表单,但只存储一个数据。

1 个答案:

答案 0 :(得分:1)

从我的SQL代码中我收集到articleId是article表的主键,而comments表中的artId是外键。

因此,您的第一个查询应仅返回结果,因此返回fetch方法。 另一方面,第二个查询可以返回许多行,但是fetch方法只返回第一个查询。要获得一组结果,您应该使用fetchAll方法并在结果数组上循环以显示所有注释。

这是一个转储了两个结果集的代码,以帮助您查看结构。 我还给你一个简单的例子,告诉你如何循环第二个结果。

$articleID = $_GET['id'];
$stmt = $pdo->query('SELECT * FROM article WHERE articleID = "' .    $articleID . '"');
$result = $stmt->fetch(PDO::FETCH_ASSOC);

$stmt2 = $pdo->query('SELECT * FROM comments WHERE artID = "' . $articleID . '"');
 $result2 = $stmt2->fetchAll(PDO::FETCH_ASSOC);

var_dump($result);
var_dump($result2);

foreach($result2 as $comment){
   echo '<p>'.$comment['text'].'<p>';
}