2

我很难理解我所知道的应该很简单的事情,并且不确定解决方案是在查询中还是在处理结果中,所以努力寻找我确定在另一篇文章中已经涵盖的内容.

我正在使用单个 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

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 和 type 应该形成一个自然的 ok 并且应该受到这样的约束。如果没有,是时候重新设计了。此外,id 考虑将内容类型作为查找而不是字符串。

于 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 回答