从SQL不加载PHP图片名称

问题描述 投票:1回答:3

我有一个PHP的购物车我的工作。我保存在我的项目的文件夹中的网址目录中的所有我的照片。在我的SQL数据库我有一个包含所有图像名称的图像表。当我打开我的PHP图片名称这多少增加了一些额外的随机字符的目录路径:/ IMG /%7B $ row_product_image [名]%7D 404(未找到)如果我硬编码图像IMG目录/ picturename.jpg它作品。下面是我。

<?php
include_once "objects/database.php";
include_once "objects/product.php";
include_once "objects/product_images.php";
// object instances
$database = new Database();
$db = $database->getConnection();
$product = new Product($db);
$product_image = new ProductImage($db);
$recordsPerPage = 1;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    extract($row);
    echo '<div class="col-md-4 mb-2">';
        echo '<div class="product-id d-none">{$id}</div>';
            echo '<a href="product.php?id={$id}" class="product-link">';
                $product_image->product_id = $pid;
                $stmt_product_image = $product_image->readFirst();
                while($row_product_image = $stmt_product_image->fetch(PDO::FETCH_ASSOC)) {
                    echo '<div class="mb-1">';
                        echo '<img src="img/{$row_product_image[name]}" class="w-100" />';
                    echo '</div>';
                }
                echo '<div class="product-name mb-1">{$name}</div>';
            echo '</a>';

    echo '</div>';
}
class ProductImage {
    private $pdoConn;  private $table_name = "product_images";
    public $id;
    public $product_id;
    public $name;
    public $timestamp;
    public function __construct($dbconn) {
        $this->pdoConn = $dbconn;
    }
    function readFirst() {
        // SELECT query
        $query = "SELECT id, pid, name " .
                 "FROM " . $this->table_name . " " .
                 "WHERE pid = ? " .
                 "ORDER BY name DESC " .
                 "LIMIT 0, 1";
        // prepare query statement
        $stmt = $this->pdoConn->prepare($query);
        // sanitize
        $this->product_id=htmlspecialchars(strip_tags($this->product_id));
        // bind variable as parameter
        $stmt->bindParam(1, $this->product_id);
        // execute query
        $stmt->execute();
        // return values
        return $stmt;
    }
}
?>
php image shopping-cart
3个回答
2
投票
echo '<img src="img/{$row_product_image[name]}" class="w-100" />';

如果字符串使用单引号(docs)引述PHP无法展开变量。还需要引用“名”的字符串使用它作为数组索引(docs)。

这就是说,无论是修复,避免单引号(但这是丑陋的,所以不要):

echo "<img src=\"img/{$row_product_image['name']}\" class=\"w-100\" />";

或痛苦少阅读:

echo '<img src="img/' . $row_product_image['name'] . '" class="w-100" />';

甚至使用printf()避免spaghetting字符串:

printf('<img src="img/%s" class="w-100" />', $row_product_image['name']);

0
投票

尝试这种代码:<?PHP的同时($ product_rows = mysqli_fetch_array($ query_run)){>?<DIV类= “COL-MD-12”> <IMG SRC =“IMG / <PHP $ product_rows [ '名称'] ;????>”类= “IMG响应”> <DIV> <PHP}>?


-1
投票
while($row_product_image = $stmt_product_image->fetch(PDO::FETCH_ASSOC)) {
                echo '<div class="mb-1">';
                echo '<img src="img/'.$row_product_image['name'].'" class="w-100" />';
                echo '</div>';
            }

试试吧

© www.soinside.com 2019 - 2024. All rights reserved.