2

シンプルであるべきだとわかっていることを理解するのに惨めに失敗しており、解決策がクエリにあるか結果の処理にあるかがわからないため、別の投稿でカバーされていると確信しているものを検索するのに苦労しています.

共通の ID を共有するコンテンツを取得して処理できるようにする必要がある単一の MySQL テーブルを使用しています。残念ながら、データベースの再構築はオプションではありません。

単純なSELECT * WHERE contentID = '2'クエリが返すものは次のとおりです。

|contentType|contentID|content       |
--------------------------------------
|title      |2        |<h1>title</h1>|
|intro      |2        |<p>intro</p>  |
|main       |2        |<p>main</p>   |

特定の「タイトル」、「イントロ」、または「メイン」コンテンツを取得する正しい方法は何ですか?

前もって感謝します。

4

4 に答える 4

2

すべての行を配列にフェッチします。

$data = array();
foreach ($rows as $r) {
  $data[$r['contentType']] = $r['content'];
}
于 2012-06-05T10:05:17.573 に答える
2
   $result = mysql_query("SELECT * WHERE contentID = '2'");
    $array = array();
    while($rows = mysql_fetch_array($result,MYSQLI_ASSOC)){
        $array[$rows['contentType']] = $rows['content'];
    }

コンテンツタイプごとに$arrayを使用できます

于 2012-06-05T10:05:53.190 に答える
0

コンテンツ タイプを where 句に入れる必要があります。ID とタイプは自然な OK を形成する必要があり、そのように制約する必要があります。そうでない場合は、再設計する時が来ました。また、コンテンツ タイプを文字列ではなくルックアップとして配置することを検討してください。

于 2012-06-05T10:06:32.367 に答える
-1
<?php
 function executeQuery($query,$connectionObject)
                {
                queryString=$query;
                        recordSet=mysql_query(queryString,$connectionObject);
                        if(!$recordSet)
                        {
                            $errorString=mysql_error($this->connectionObject);
                            return array("error"=>$errorString);
                        }

                        return recordSet;
                    }
                function getNextRecord($recordSet)
                    {
                        $resultArray =mysql_fetch_assoc($recordSet);
                        if(!empty($resultArray))
                        return($resultArray);
                        else
                        return "false";


                    }

        $result = executeQuery("SELECT * FROM foo WHERE contentID = '2'");

        $nextRecord = getNextRecord($result);
        while($nextRecord!="false")
        {
        $nextRecord = getNextRecord($result);
        //...........Process the record.....

         ->$nextRecord['contentType'];
         ->$nextRecord['contentID'];
         ->$nextRecord['content'];
    //..................................

        }
于 2012-06-05T10:18:57.257 に答える