0

MySQL の値を定義済みのプレースホルダーにフェッチする方法を教えてください。カスタム CMS を構築していますが、PHP の知識が不足しています。

私のSQLテーブル:

`menuLinkID` smallint(5),
`menuLinkDescription` text NOT NULL,
`menuActualLink` mediumtext NOT NULL,

1) Index.php (関数を定義している場所);

// Build Index page:
function IndexFunction() {
$results = array();
$results['pages'] = $data['results'];

2) Include.php (必要なリンクを設定するデフォルトのテンプレート)

<div id="text1"><a href="<?php echo $menuActualLink1; ?>"><?php echo $menuLink1; ?><span>&raquo;<?php echo $menuLinkDesc1; ?></span></a></div>
<div id="text2"><a href="<?php echo $menuActualLink2; ?>"><?php echo $menuLink2; ?><span>&raquo;<?php echo $menuLinkDesc2; ?></span></a></div>
<div id="text3"><a href="<?php echo $menuActualLink3; ?>"><?php echo $menuLink3; ?><span>&raquo;<?php echo $menuLinkDesc3; ?></span></a></div>

3) myClass.php (実際にすべての仕事をするクラス)

これは私が立ち往生しているところです。ほぼすべてのレコードを表示できましたが、これは私の目標ではありません。私の目標は、すべてのレコードを取得してすべてのプレースホルダーを埋めることです(したがって、この状況ではループステートメントが必要になると思います)

public static function getList( $numRows=1000000, $order="menuLinkID ASC" ) {
$conn = new PDO( DB_dsn, DB_Uname, DB_pass );
$sql = "SELECT SQL_CALC_FOUND_ROWS *, menuLinkID AS id FROM myTABLE
        ORDER BY " . mysql_real_escape_string($order) . " LIMIT :numRows";

$st = $conn->prepare( $sql );
$st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
$st->execute();
$list = array();

これを達成する方法がわかりません。これについて教えていただければ幸いです。

4

1 に答える 1

0

あなたの構造に入るのは非常に難しいですが(これは非常に珍しいようです)、試してみます.

public static function getList() {
    global $conn; //connect somewhere else and use one connection everywhere
    $sql = "SELECT * FROM myTABLE ORDER BY menuLinkID ASC";
    $st  = $conn->prepare( $sql );
    $st->execute();
    return $st->fetchAll();
}

(コンストラクターで PDO 接続を定義して$this->conn、グローバルの代わりに使用することもできます)

その後、インデックスに

$data['menulinks'] = $yourClass->getList();

次にテンプレで

<?php foreach($data['menulinks'] as $i => $row): ?>
<div id="text<?php echo $i+1; ?>">
  <a href="<?php echo $row['menuActualLink1']; ?>">
    <?php echo $row['menuLink1']; ?>
    <span>&raquo;<?php echo $row['menuLinkDesc1']; ?></span>
  </a>
</div>
<?php endforeach ?>
于 2013-02-26T08:57:08.523 に答える