如何处理共享公共ID的SQL查询的多个结果?

时间:2012-06-05 10:02:17

标签: php mysql

我惨遭失败,无法理解我所知道的应该是简单的事情,并且不确定解决方案是在查询中还是在处理结果中,所以努力寻找我确信已覆盖的内容在另一篇文章中。

我正在使用单个MySQL表,我需要从中检索和处理共享公共ID的内容。不幸的是,重组数据库不是一种选择。

这是一个简单的SELECT * WHERE contentID = '2'查询返回的内容:

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

检索特定“标题”,“简介”或“主要”内容的正确方法是什么?

提前致谢。

4 个答案:

答案 0 :(得分:2)

将所有行提取到数组中:

$data = array();
foreach ($rows as $r) {
  $data[$r['contentType']] = $r['content'];
}

答案 1 :(得分:2)

   $result = mysql_query("SELECT * WHERE contentID = '2'");
    $array = array();
    while($rows = mysql_fetch_array($result,MYSQLI_ASSOC)){
        $array[$rows['contentType']] = $rows['content'];
    }

您可以为每种内容类型使用$数组

答案 2 :(得分:0)

您必须将内容类型放入where子句中。 Id和类型应该形成一个自然的好,应该受到限制。如果没有,是时候重新设计了。另外,id考虑将内容类型作为查找而不是字符串。

答案 3 :(得分:-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'];
    //..................................

        }