我有一种感觉我以前做过这件事,但我无法记住它是如何完成的。到目前为止,这是while循环:
include ('includes/DbCon.php');
$dir = 'images/photo/';
$query = "select * from news";
$result = $mysqli->query ($query);
echo "<table border='0' class='newsTable' style='width:70%;margin:0em auto;'>";
echo "<tr stlye='display:block;margin:0em auto;'><th>Date</th><th>Headline</th><th>Body</th><th>Image</th></tr>";
while ($row = $result->fetch_assoc())
{
echo "<tr><td>";
echo date('j/M/y', strtotime($row['newsDate']));
echo "</td><td>";
echo "<a href='newsItem.php?id=".$row['id']."'>".$row['headline']."</a>";
echo "</td><td>";
echo "<a href='newsItem.php?id=".$row['id']."'>" . $row['body'] . "</a>";
echo "</td><td>";
echo "<p><img src=".$dir.$row['image']." width='100' height='100' alt=''> </p>";
echo "</td></tr>";
echo "<th colspan=\"4\"><hr width=\"90%\"></th>";
}
echo "</table>";
$mysqli->close();
我尝试制作select语句:
select * from news, reviews
但它只带来了评论表中的项目。
我尝试查找php手册但无法找到它。我必须为第二个表(评论)设置所有变量,不是吗?
答案 0 :(得分:1)
您的查询是否正确
传递多个表名(逗号分隔)会带来所有表的数据,但是如果你的表有公共列那么很难识别它们
除此之外,如果您使用逗号分隔方法,
然后看一个示例,如果您有两个表city
和state
传递列名而不是*
,以便更快地执行查询
使用表名
查询就像这样
SELECT ct.city_name,ct.state_id,ct.is_capital,
st.name,st.zoom,st.is_state,
ct.lat as ct_lat,st.lat as st_lat
FROM `city` as ct,
`state` as st
在您的情况下,它将类似于news
和review
及其列名称
加入的例子
SELECT * FROM t1 LEFT JOIN (t2, t3, t4)
ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)