0

私は PHP を初めて使用し、実践としてソーシャル ネットワークを作成し、学んだことを「現実の世界」に適用しています。とにかく、MySQL データベースに 2 つのテーブルがあり、自分のサイトで、php エコーを介してレンダリングされている同じ html テーブルに表示しようとしています。

ここにテーブルがあります

(表 1) note_system: -id、-username、-note

(表 2) コメント: -id、-cid (note_system の ID と等しい)、-username、-comment

したがって、誰かが投稿を作成し、note_system テーブルに保存してから、誰かが投稿にコメントし、note_system テーブルの ID を使用してコメント テーブルに保存し、関係を確立できるようにします。

だから私がやろうとしているのは、投稿のコメントを関連する投稿と一緒に表示することです。これを実現するには JOIN または UNION が必要かもしれませんが、その方法について完全に途方に暮れています。頭を悩ませ、たくさんのグーグル検索を行ってきましたが、実際にはどこにも行きません. 私が試みるすべてが私にエラーを与えます。メモは意図したとおりに問題なく表示されますが、コメントをそこに表示する方法を理解することはできません。

これが私のコードです(私のPHPの初心者を笑わないでください。これは私の2番目の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>";








 ?>

私のチキン スクラッチ プログラミングが理にかなっているといいのですが。あなたの時間と知識をありがとう。

4

2 に答える 2

0

php と mysql を使用する初心者向けの基本的な手順は次のとおりです。

FIRST : データベースのユーザー、パス、ホスト、DB名の構成をセットアップします

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

2 番目: クエリを作成します (ここにクエリを挿入できます)。

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

FINAL : 次のような 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;

于 2013-04-02T05:11:07.747 に答える
0

実際には、コメントは実際の投稿とは異なるデータ セットです。2 つ目のクエリを使用して、投稿に関連するすべてのコメントを取得できます。しかし、テーブルの結合は非常に便利であり、学習する必要があります。この場合、共有 ID (外部キー) で note_system と comments テーブルを結合します。

そのように:

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

これはテーブルのリテラル結合であるため、結合式に一致する限り、出力には両方のテーブルのすべての列が含まれます。コメント テーブルに一致する CID 列がない場合、それらの列の値は出力で NULL になります。(一致する行のみを返したい場合は、上記で使用した LEFT OUTER 結合ではなく、INNER 結合を使用できます。)

これは、SQL テーブルの結合を説明する良いページです。

于 2013-04-02T05:25:35.503 に答える