【发布时间】:2012-10-11 04:12:59
【问题描述】:
我对自己做错了什么感到困惑。我在许多资源中查找了这一点,包括我正在学习 PHP 的那本书,它似乎应该是正确的......但它只是不起作用。
<?php
try
{
$sql = 'SELECT parks.id, parks.state, parks.name, parks.description, parks.site, parks.sname, parks.street, parks.city, parks.zip, parks.phone FROM parks
INNER JOIN comments ON parks.parkid = comments.parkid
INNER JOIN photos ON parks.parkid = photos.parkid
INNER JOIN events ON parks.parkid = events.parkid';
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching data: ' . $e->getMessage();
include 'output.html.php';
exit();
}
foreach ($result as $row)
{
$datas[] = array ('id' =>$row['id'],
'parkid' =>$row['parkid'],
'state' =>$row['state'],
'name' =>$row['name'],
'description' =>$row['description'],
'site' =>$row['site'],
'sname' =>$row['sname'],
'street' =>$row['street'],
'city' =>$row['city'],
'phone' =>$row['phone'],
'zip' =>$row['zip'],
'commentname' =>$row['commentname'],
'comment' =>$row['comment'],
'event' =>$row['event'],
'date' =>$row['date'],
'description2' =>$row['description2']);
}
include 'writing.html.php';
这将返回第一个表(公园)中的所有数据就好了。项目 commentname、comment、event、date 和 description2 来自连接表(events 和 cmets)
如果我回显 '$row['state']' 我会得到正确答案。但是,如果我回显其他表中的任何项目(例如 $row['comment']),我不会得到任何结果。
我错过了什么?
【问题讨论】:
-
您没有列出任何要返回的联接表中的列
-
马克,我不明白你的回答。除了在数组中,我应该在哪里列出它们?它们在数组中。
-
该数组是根据 $row 中 SQL 返回的 $result 构建的...但是如果您的 $sql 没有列出列,那么它们将不在 $row... 中下面回答列出列的示例,而不是完整的解决方案
标签: php arrays inner-join