-2

トピック内の投稿の情報をデータベースから呼び出しています。私はそうするために使用mysql_fetch_assoc()しています。最初の投稿は機能していますが、返信にアクセスする方法がわかりません。それで、そのトピックの投稿のリストを取得できれば、そうできると考えました。

これが私が取り組んでいる私のコードのサンプルです:

$result1 = mysql_query("SELECT * FROM posts WHERE topic_id='" . $topicinfo['id'] . "'");
  while($row = mysql_fetch_assoc($result1)){
  $postinfo = print_r($row);
}

$topicinfo[]トピックに関する情報の配列です。

このコードの問題は、結果を自動的に出力するだけでなく、変数に保存したいということです。

これは可能ですか?

4

3 に答える 3

1

やりたいことは、データベースから抽出したすべての結果を配列にプッシュすることです。

$posts = array();
$result = mysql_query("SELECT * FROM posts ...");
while($row = mysql_fetch_assoc($result)){
    $posts[] = $row;
}

これで、配列$postsにはデータベースからのすべての結果が含まれます。構文[]は単に省略形ですarray_push()


古い MySQL ライブラリの使用

古い mysql_* 関数は使用しないことをお勧めします。これらを新しいコードに使用することはお勧めできません。より近代的な代替手段が利用可能であり、より適切に維持されています。代わりに、準備済みステートメントについて学習し 、 PDO または MySQLiのいずれかを使用することを 検討してください。厳密に使用すると、面倒で手動のエスケープ部分が回避されるため、非常に簡単になり、(副産物として) 安全に使用できます。開始するのに適した場所については、この PDO チュートリアルを確認してください。

于 2012-09-15T19:10:29.743 に答える
1

やってみました:

while($row = mysql_fetch_assoc($result1)){ 
    $postinfo[] = $row; 
} 

これにより、すべてが の配列に追加され$postinfoます。

でも

mysql_*どちらか一方にPDO切り替えることを検討する必要があります。どちらmysqli_*も安全なコードを簡単に記述できるようにします。

于 2012-09-15T19:09:22.320 に答える
0

データベースから複数のレコードを保存するには、配列変数を定義し、各レコードをフェッチしながらそれらのレコードを配列変数にプッシュする必要があります。

例えば

    $resultset=array(); 
    while($row=msyql_fetch_assoc($res)) 
    {
    array_push($resultset,$row); 
    }

$resultset 変数を使用して、完全な SQL クエリの結果セットにアクセスできます。

于 2012-09-16T01:41:25.800 に答える