簡體   English   中英

在內容顯示類別中過濾page_id

[英]Filter page_id in content display class

我建立了一個類來顯示數據庫中的內容。 我現在想按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 | |標題| |內容| |日期| |位置|

由於我知道這可能不是執行此操作的正確方法,因此您可以給我一些提示嗎? 我上課很新。


好的..所以我稍微更改了代碼,從類中刪除了全局$ page並將其替換為我執行該類的頁面:

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

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

與此有關,我得到以下錯誤:警告:第42行上... content.class.php中為foreach()提供了無效參數。

好的,問題是您在類定義中使用了global $page 如果要使$ page全局,則必須將global $page放在方法的開頭,而不是類的開頭。

您不能在課程內部使用以下lin:

全球$ page;

您不需要這個。 只需注釋掉它,它將起作用。

“提供了無效的參數...”錯誤意味着您在foreach循環中傳遞的變量不是數組。 通過查看您的代碼,我可以想到的一件事是查詢中存在錯誤。 您的查詢似乎很好,所以我想說在MySQL無法理解的地方有一個看不見的字符。 然后,您的方法返回false,並且foreach循環不能將“ false”作為參數。

我建議嘗試使用mysql_query($sql, $this->conn) or die(mysql_error()) (我建議您僅將其用於基本調試,因為它可能會顯示有關表結構的某些信息)。 這將嘗試查詢,如果有錯誤,則將您打印出來。

(很抱歉,我為此添加了另一個答案,但是文本太長,無法發表評論)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM