Php 为两个表声明$row
我想将两个表中的数据回显到一个变量中。以下是我目前掌握的代码:Php 为两个表声明$row,php,html,mysql,Php,Html,Mysql,我想将两个表中的数据回显到一个变量中。以下是我目前掌握的代码: $sqlCommand = "SELECT * FROM News ORDER BY id DESC LIMIT 10"; $sqlCommand3 = "SELECT * FROM Users ORDER BY id"; $query = mysql_query($sqlCommand) or die(mysql_error()); $query3 = mysql_query($sqlCommand3) or die(mys
$sqlCommand = "SELECT * FROM News ORDER BY id DESC LIMIT 10";
$sqlCommand3 = "SELECT * FROM Users ORDER BY id";
$query = mysql_query($sqlCommand) or die(mysql_error());
$query3 = mysql_query($sqlCommand3) or die(mysql_error());
$count = mysql_num_rows($query);
if($count > 1) {
$News .= "";
// How do I add the query3 here?? along side the already existing one
while($row = mysql_fetch_array($query)) {
// some of the $row here are from query one and some are from query 3
$News .= "<a href=\"news?id=".$row['id']."\"><div class=\"news-post\"> <img src=\"".$row['author']."\"><p>".$row['author']."</p> <h2>".$row['title']."</h2></div></a>";
} // close while
$sqlCommand=“按id DESC LIMIT 10从新闻订单中选择*”;
$sqlCommand3=“按id从用户订单中选择*”;
$query=mysql\u query($sqlCommand)或die(mysql\u error());
$query3=mysql\u query($sqlCommand3)或die(mysql\u error());
$count=mysql\u num\u行($query);
如果($count>1){
$News.=”;
//我如何在这里添加查询3??与现有的查询一起添加
while($row=mysql\u fetch\u array($query)){
//这里的$行中有些来自查询1,有些来自查询3
$News.=”;
}//正在关闭
这不是正确的方法,请尝试使用。在这种情况下,您将需要唯一的完全外部联接
SELECT * FROM News
FULL OUTER JOIN USERS
ON News.id = Users.id
WHERE News.id IS NULL
OR Users.id IS NULL;
这将为您提供包含两个表中所有列的所有行。根据实际关系,您可能需要某种不同类型的联接(请参阅前面的链接)…但这似乎是您在示例中尝试实现的
警告:您正在使用的扩展名已被删除。请使用或。您的用户表应通过oneToMany关联链接到新闻表。
因此,用户编写新闻,用户编写新新闻。
您需要在SQL查询中添加联接
$sql = 'SELECT u.username, n.* FROM News n JOIN User u ON n.user_id = u.id';
然后,您只需执行一条SQL语句并在HTML中显示结果
请注意这一点。这两个表相关吗?如果相关,您是否考虑过使用联接查询?唯一需要注意的是,要找到一个联接查询。有时可能会很困难,因为它们在SEO中排名很高。