我目前需要创建一个自动填充的表,具体取决于数据库中有多少实体。
我目前有一个简单的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);
我尝试使用表单,但只存储一个数据。
答案 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>';
}