我正在尝试在课堂上构建自己的CMS 现在,当我尝试从MySQL数据库中获取数据时,我遇到了问题 而不是一个项目,我想得到我的所有项目的集合
最后我想得到一个Object,所以我可以读出它:$ item-> id
这是我的代码:
static function getContentItems($id, $active, $sort_by, $sort_type, $limit) {
if (isset($id) && !empty($id)) {
$where .= "WHERE id = ".$id;
}
if (isset($active) && !empty($active)) {
$where .= " AND active = ".$active;
}
if (isset($sort_by) && !empty($sort_by)) {
$where .= " ORDER BY ".$sort_by;
if (isset($sort_type) && !empty($sort_type)) {
$where .= " ".$sort_type;
}
}
if (isset($limit) && !empty($limit)) {
$where .= " LIMIT 0,".$limit;
}
if (isset($where) && !empty($where)) {
$query = "SELECT * FROM content ".$where;
} else {
$query = "SELECT * FROM content";
}
$result = mysql_query($query)or die(mysql_error());
$item = new ContentItem();
while ($data = mysql_fetch_array($result)) {
$item->id = $data['id'];
}
return $item;
}
}
答案 0 :(得分:1)
不要使用.
if (isset($id) && !empty($id)) {
$where = "WHERE id = ".$id;
}
并且alwez打印您的$query
更好的解决方案
if (!empty($id) {
$where = " WHERE id = ".$id;
if (!empty($active)) {
$where .= " AND active = ".$active;
if (!empty($sort_by)) {
$where .= " ORDER BY ".$sort_by;
if (!empty($sort_type)) {
$where .= " ".$sort_type;
}
}
}
}
if (empty($limit)) {
$where .= " LIMIT 0,".$limit;
}
以后
$item = new ContentItem();
$data = array(); $i=0;
while ($data = mysql_fetch_object($result)) {
$search_result[$i] = $data;
$i++;
}
return $search_result;
可以通过$search_result[$i]->id
答案 1 :(得分:0)
为什么不使用数组?
像这样:
$collection = array();
while ($data = mysql_fetch_array($result)) {
$item = new ContentItem();
$item->id = $data['id'];
$collection[] = $item; //Appends the item to the array
}
return $collection;
您可以通过以下方式访问阵列:
$collection = YourClassName::getContentItems(...);
foreach($collection as $item) {
// do something with each $item
print_r($item);
}
答案 2 :(得分:0)
查看使用mysql_fetch_object http://php.net/manual/en/function.mysql-fetch-object.php而不是mysql_fetch_array ..它将db作为对象的行返回