无法在多个表的PHP页面上显示数据

时间:2016-04-30 21:22:30

标签: php html mysql css sql

我正在构建一个论坛,在我的main_forum.php页面上,我正在尝试显示已发布主题的用户,我获取所有数据,但用户名托管在另一个表上。如何让它显示?

<?php

include ('includes/session.php');
include ('includes/header.php');

$host = "localhost";
$username = "fses16g6";
$password = "fses16g6";
$db_name="fses16g6"; // Database name 
$tbl_name="forum_question"; // Table name 
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name ORDER BY id DESC";
//$query="SELECT * FROM users"
// OREDER BY id DESC is order result by descending 

$result=mysql_query($sql);
?>

<table width="90%" border="0" align="center" cellpadding="3" cellspacing="1"     bgcolor="#202531">
<tr>
<td width="6%" align="center" bgcolor="#202531"><strong>#</strong></td>
<td width="50%" align="center" bgcolor="#202531"><strong>Topic</strong></td>
<td width="11%" align="center" bgcolor="#202531"><strong>User</strong></td>
<td width="11%" align="center" bgcolor="#202531"><strong>Views</strong></td>
<td width="11%" align="center" bgcolor="#202531"><strong>Replies</strong>    </td>
<td width="11%" align="center" bgcolor="#202531"><strong>Date/Time</strong>    </td>
</tr>

<?php

while($rows=mysql_fetch_array($result)){
?>

<tr>
<td bgcolor="#202531"><?php echo $rows['id']; ?></td>
<td bgcolor="#202531"><a href="view_topic.php?id=<?php echo $rows['id']; ?    >"><?php echo $rows['topic']; ?></a><BR></td>
<td align="center" bgcolor="#202531"><?php echo $rows['first_name']; ?></td>
<td align="center" bgcolor="#202531"><?php echo $rows['view']; ?></td>
<td align="center" bgcolor="#202531"><?php echo $rows['reply']; ?></td>
<td align="center" bgcolor="#202531"><?php echo $rows['datetime']; ?></td>
</tr>
<?php
// Exit looping and close connection 
}

mysql_close();
?>

<tr>
<td colspan="7" align="right" bgcolor="#000000"><a href="create_topic.php">    <strong>Create New Topic</strong> </a></td>
</tr>
</table>



<?php

if ($is_admin) {
                echo '<button type="button">EDIT</button>';
                echo '<button type="button">DELETE</button>';
            }

include ('includes/footer.html');
?>

这是'forum_questions'表格

 CREATE TABLE `forum_question` (
`id` int(4) NOT NULL auto_increment,
`topic` varchar(255) NOT NULL default '',
`detail` longtext NOT NULL,
`name` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
`datetime` varchar(25) NOT NULL default '',
`view` int(4) NOT NULL default '0',
`reply` int(4) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

我已成功将表连接到php,但没有连接到表的用户名值,因此它不显示用户名。

我需要从表'users'中获取元组'first_name'并将其应用到main_forum.php部分,在那里它表示哪个用户创建了一个主题。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我认为你的问题的精神更多地与SQL有关,而不是与PHP有关。您可以考虑查看this question,其中显示与您的问题相关。这将使您开始使用所需的SQL语法。

从表格设计的角度来看,您需要确保自己有办法将用户关联的表格关联起来。包含论坛问题数据的表格的数据。作为关系数据库,拥有MySQL数据库的能力是将关联数据的能力,可能来自不同的表。在MySQL数据库设计上发现了一个快速的Google搜索this primer,但是通过一些快速搜索,您可以获得大量资源。

简而言之,您可能希望探索创建一个将您的用户与论坛问题相关联的外键。然后,您可以使用适当的SQL语法来获取包含您的用户的查询结果。信息。

我希望这有助于引导您走向正确的道路!

答案 1 :(得分:0)

如果你将posers userID添加到论坛)问题表,你可以添加一个新的变量,这是你的用户表。

$table2 = users

然后将$ sql更改为:

$sql="SELECT * FROM $tbl_name INNER JOIN $table_name2 ON $tbl_name.user_id = $tbl_name2.user_id ORDER BY id DESC";

现在您可以访问users表和forum_question表中的数据。