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 回答