我惨遭失败,无法理解我所知道的应该是简单的事情,并且不确定解决方案是在查询中还是在处理结果中,所以努力寻找我确信已覆盖的内容在另一篇文章中。
我正在使用单个MySQL表,我需要从中检索和处理共享公共ID的内容。不幸的是,重组数据库不是一种选择。
这是一个简单的SELECT * WHERE contentID = '2'
查询返回的内容:
|contentType|contentID|content |
--------------------------------------
|title |2 |<h1>title</h1>|
|intro |2 |<p>intro</p> |
|main |2 |<p>main</p> |
检索特定“标题”,“简介”或“主要”内容的正确方法是什么?
提前致谢。
答案 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'];
//..................................
}