PHP,MYSQL noob加入(?)表的细节

时间:2013-04-02 05:01:38

标签: php mysql

我是PHP的新手,正在将社交网络作为实践,并将我在“现实世界”中学到的东西应用。无论如何,我在MySQL数据库中有两个表,我试图在我的网站上显示在通过php echo呈现的同一个html表中。

这是表格

(表1) note_system: -ID, -用户名, - 注意

(表2) 评论: -ID, -cid(等于note_system中的id), -用户名, -comment

所以有人发帖并将其保存到note_system表,然后有人对帖子发表评论并使用note_system表中的id保存到评论表中,以便建立关系。

所以我要做的是将帖子评论与相关帖子一起显示。我已经收集到,我需要一个JOIN或UNION才能实现这一目标,但我完全不知道如何去做。一直在绞尽脑汁,做大量的谷歌搜索,但我并没有真正得到任何结果。我尝试的一切都给了我错误。 Notes显示正常并且符合预期,但我不能为我的生活找出如何让评论显示在那里。

这是我的代码(不要嘲笑我的PHP的noob-ness,这是我的第二个PHP程序,我显然有很多要学习,我想在某些时候清理它但是现在我只是希望它具有功能性)

<?php
// Display Note_Wire

$con=mysqli_connect($host,$username,$password,$dbname);
// Check connection

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}   


//format and display the Note_Wire results with comments

$result = mysqli_query($con,"SELECT * FROM note_system");


while($row = mysqli_fetch_array($result))
{
echo "<center>";
echo "<table class='note_wire'>";
echo "<tr>";
echo "<td>" . $row['username'] . "</td>" ;
echo "</tr><tr>";

echo "<td><a href=''>vote up</a>" . "  " . $row['rank'] . "  " . "<a href=''>vote      down</a></td>" ;
echo "</tr><tr>";

echo "<td> <a href='{$row['link']}' target='blank'>{$row['link']}</a>";
echo "</tr><tr>";


echo "<td>" . $row['note'] . "</td>" ;

echo "</tr> ";



//add comments attempt  this is where I would like the comments to be displayed

echo  '

<td><form action="add_comment.php" method="POST">  

<input type="hidden" name="username" value="';

echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
echo '" />'; 

echo '<input type="hidden" name="cid" value="';
echo $row['id']; 
echo '" />'; 

echo '<textarea name="comment">comment...</textarea></td></tr>

<tr><td><input type="submit" value="comment" />

</form></td></tr>


';







echo "</table>";




// break before next note-wire record renders
echo "<br />";

}



echo "</center>";








 ?>

我希望我的鸡毛刮刮编程有意义。感谢您的时间和知识。

2 个答案:

答案 0 :(得分:0)

如果您的初学者使用php和mysql,那么下面是基础步骤。

首先:为数据库用户,PASS,HOST,DBNAME设置配置

$conn = new mysqli('database_server','database_username','database_password','database_name');

SECOND:创建查询(您可以在此处插入查询)..

$result= $conn->query("SELECT SUM(Total_Steps) AS value_sum FROM users");

最终:使用MYSQL函数显示记录...

while($row = $result->fetch_assoc()){
    echo $row['dabatase_columnname'];
    echo $row['database_columnname'];
}

为您的查询尝试使用此一个或创建一个相对的。

SELECT 'enter column needed here with their specific database allias ex. TABLE1.ID'FROM NOTE_SYSTEM TABLE1 LEFT JOIN COMMENTS TABLE2 ON TABLE1.ID = TABLE2.CID;

答案 1 :(得分:0)

实际上评论是与实际帖子不同的数据集,您可以使用第二个查询来获取与帖子相关的所有评论。但是表联接非常有用,你应该学习它们。在这种情况下,您将在共享ID(外键)上加入note_system和comments表。

如此:

SELECT *
FROM note_system
LEFT JOIN comments ON comments.cid=note_system.id

这是表的字面连接,因此只要匹配表达式,您的输出就会包含两个表中的所有columsn。如果comments表中没有匹配的CID列,则输出中这些列的值将为NULL。 (如果你只想返回匹配的行,你可以使用INNER连接,而不是我上面使用的LEFT OUTER连接。)

This is a good page explaining SQL table joins.