过滤内容显示类中的page_id

时间:2013-05-01 12:15:22

标签: php mysql class function

我已经构建了一个显示数据库内容的类。我想现在通过page_id过滤它,所以我可以将内容链接到正确的page_id。所以我开始试图让它与$ _GET一起工作,但到目前为止它只是错误..

(我的菜单链接中的项目给出了?page = x,x = id)

到目前为止我的课程:

include_once('./includes/config.php');
class Content {

global $page;    
public $id;
public $page_id;
public $title;
public $content;
public $position;



var $conn;

function Content()
        {
                $this->conn = mysql_connect(Config::DB_HOST, Config::DB_USER, Config::DB_PASS);
                mysql_select_db(Config::DB_NAME, $this->conn);
        }


function get_content_articles($page)
{
    $sql = "SELECT id, page_id, title, content, date, position FROM articles ORDER BY id, position WHERE page_id = ".$page." ";
    $result = mysql_query($sql, $this->conn);

                if ( !$result )
                        return false;
    $fetch_all = array();

    while($article = mysql_fetch_assoc($result))
    $fetch_all[] = $article;

return $fetch_all;
}


public function display_content($page) {
    $this->article = $this->get_content_articles($page);
    $content = "";
    foreach ( $this->article as $article)   

    $content .= '
        <div class="blok">
        <h2>
        </br>
        '.$article['title'].'</h2>
        </br>
        '.$article['content'].'
        </br>
        '.$article['date'].'
        </div>
    ';

    return $content;
  }
}

我如何运行课程:

    include("classes/content.class.php");


$content = "";
$content = new Content();

echo $content->display_content($_GET['page']); 

必要时使用Db表:

| ID | | PAGE_ID | |标题| |内容| |日期| |位置|

因为我知道这可能不是正确的方法,你能给我一些提示吗?我对课程很陌生。


好的..所以我稍微更改了代码,从类中删除了全局$页面并将其替换为我执行该类的页面:

include("classes/content.class.php");

global $page; 
$page = $_GET['page'];
$content = new Content();
echo $content->display_content($page); 

有了这个,我得到以下错误:警告:在第42行的... content.class.php中为foreach()提供的参数无效

3 个答案:

答案 0 :(得分:0)

好的,问题是您在类定义中使用global $page。如果你想让$ page全局化,你必须将global $page放在方法的开头,而不是类。

答案 1 :(得分:0)

你不能在课堂内使用以下内容:

  

全球$ page;

你不需要这个。只需将其评论出来即可。

答案 2 :(得分:0)

'无效参数提供...'错误意味着您在foreach循环中传递的变量不是数组。通过查看代码,我能想到的一件事是你的查询中有错误。您的查询似乎很好,所以我会说MySQL有一个看不见的字符,MySQL无法理解。然后您的方法返回false,并且foreach循环不能将'false'作为参数。

我建议尝试mysql_query($sql, $this->conn) or die(mysql_error())(我建议您仅将其用于激进调试,因为它可能会显示有关您表格结构的一些信息)。这将尝试查询,如果有错误,则打印错误。

(对不起,我为此添加了另一个答案,但文字太长,无法发表评论)