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