0

これはとてもシンプルですが、今日はたくさんのサークルに行きましたが、完全に迷子になっています!

ページの上部に設定した変数に基づいて、正しいページタイトルとページコンテンツを取得しようとしています。すなわち:

<?php 
$pageIDn = 2;
include($_SERVER['DOCUMENT_ROOT'] .'/includes/functions.php');
content($pageIDn); // the function that queries the DB
include($_SERVER['DOCUMENT_ROOT'] .'/includes/header.php'); ?>

関数内には、次の関数/クエリがあります。

function content($pageID){
    $query = mysql_query("SELECT * FROM pages WHERE id = 1");
    $title = $query['title'];
    $content = $query['content'];
}

そして、ファイル内の関連する場所で、変数をエコーし​​ようとしています。

<h2><?php echo $content; ?></h2>

私はここのどこかで非常に愚かな間違いを犯したことを知っています...どこかわからないだけです。

4

2 に答える 2

2

3 つの大きなエラーがあります。

  1. $pageIDクエリに入れ忘れました:

    $query = mysql_query("SELECT * FROM pages WHERE id = {$pageID}");
    
  2. ...結果を取得するには:

    $row = mysql_fetch_assoc($query);
    $title = $row['title'];
    $content = $row['content'];
    
  3. ...そして、出力を返してキャプチャします。

    return array($title, $content);
    
    list($title, $content) = content($pageIDn);
    

スタックオーバーフロー:

$pageIDn = 2;
include($_SERVER['DOCUMENT_ROOT'] .'/includes/functions.php');
list($title, $content) = content($pageIDn); // the function that queries the DB
include($_SERVER['DOCUMENT_ROOT'] .'/includes/header.php'); ?>

function content($pageID){
    $query = mysql_query("SELECT * FROM pages WHERE id = {$pageID}");
    $row = mysql_fetch_assoc($query);
    $title = $row['title'];
    $content = $row['content'];
    return array($title, $content);
}

また、新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや保守されておらず、公式に廃止されています。赤いボックスが見えますか? 代わりに準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-01-06T21:49:39.140 に答える
1

最初の間違いは MYSQL_ *を忘れていることです。PDO を使用する 次に、$pageIDn = 2 を取得したいと言いましたが、まったく使用しませんでした。

function content($pageID){
$query = mysql_query("SELECT * FROM pages WHERE id = ".$pageIDn." ");
$row = mysql_fetch_array($query);
$title = $query['title'];
$content = $query['content'];
 } 
于 2013-01-06T21:53:47.737 に答える