【发布时间】:2016-06-05 06:32:17
【问题描述】:
我正在努力显示从 MySQL 数据库记录中提取的一段代码,但似乎无法使其正常工作。任何帮助将不胜感激。
我有这个画廊脚本,它需要一段代码才能在画廊中显示图像:
<ul data-category-name="ALL">
<li data-url="link: htpp://www.here.com" data-target="_blank">
<img src="content/media/thumbnails/framephoto1.jpg" alt="custom alt"/>
<div data-thumbnail-content1="">
<p class="centerDark">Photo Name</p>
<p class="centerNormalDark">Photo Desc</p>
</div>
</li>
<ul>
我想我会尝试将它连接到 MySQL 数据库,这样我就可以简单地将每张照片的详细信息添加到数据库中的行中,然后这个脚本只会拉取它们并按照我想要的顺序放置它们每次添加新照片时,我都必须手动添加代码 sn-p。
到目前为止,我有这个代码:
<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>ID</th><th>Photo Name</th><th>Value</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "dbusername";
$password = "dbpassword";
$dbname = "dbname";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, name, value FROM photos ORDER BY value DESC");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
这个显示的问题是它正在创建一个带有行和列的表格来显示文本,所以我想将上面的 sn-p 添加到表格中的一个单元格(code_sn-p),然后简单地调用它在没有表格或任何其他代码的情况下为每一行显示并按值排序?
有没有人能帮我弄清楚如何去掉这个表并只显示一个代码单元格?
如果没有,那么如何将相关单元格添加到每个单元格的代码 sn-p 中?
提前谢谢你。
更新:
喂。对不起,但这完全让我失望了。这是我目前所拥有的连接:
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM photos ORDER BY value DESC");
$stmt->execute($all);
} catch (PDOException $e) {
echo 'Error '. $e->getMessage();
}
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM photos WHERE type=1 ORDER BY value DESC");
$stmt->execute($people);
} catch (PDOException $e) {
echo 'Error '. $e->getMessage();
}
现在在 dbconnect 文件中。然后我尝试将下面这两个 sn-ps 添加到它们的相关位置到我希望它们都工作的主文档中。 :>/ 仍然会调用它显示的所有记录,但不会单独调用数据库。
要显示的所有照片:
<?php foreach($stmt->fetchAll($all) as $p): ?>
<li data-url="link: <?= $p['link'] ?>" data-target="_blank">
<img src="<?= $p['image'] ?>" alt="custom alt"/>
<div data-thumbnail-content1="">
<p class="centerDark"><?= $p['name'] ?></p>
<p class="centerNormalDark"><?= $p['desc'] ?></p>
</div>
</li>
<?php endforeach; ?>
仅显示类别 1:
<?php foreach($stmt->fetchAll($people) as $p): ?>
<li data-url="link: <?= $p['link'] ?>" data-target="_blank">
<img src="<?= $p['image'] ?>" alt="custom alt"/>
<div data-thumbnail-content1="">
<p class="centerDark"><?= $p['name'] ?></p>
<p class="centerNormalDark"><?= $p['desc'] ?></p>
</div>
</li>
<?php endforeach; ?>
很抱歉让我很痛苦,但这真的让我很生气。谢谢。
【问题讨论】: