【问题标题】:Pull the image path from a database and display the image从数据库中拉取图像路径并显示图像
【发布时间】:2018-11-08 14:18:59
【问题描述】:

我想要做的是让用户搜索产品并在搜索时带回图片。我希望通过从数据库中提取图像的路径并将其作为“”路径的一部分来实现这一点。我在网上看过一些教程和类似的问题,但它们都要求用户先上传图片(我不希望发生这种情况)。

所以查询肯定有效,它会提取所有文本数据,当我运行它时可以看到这些数据。我被引导相信这是路径,但我不确定为什么它不起作用。我有它,它采用“img/ImageName 路径(直接从数据库中提取。我什至玩过它,让“img/”作为 PHP 的一部分(作为字符串)出现)。但是,每当我执行查询时,唯一出现的图像应该是 alt“找不到”图标。

这是我的代码:

HTML:

<form action="searchDB.php" method="GET" id="searchForm">
    <p>Search for the product you want!</p>
    <input type="text" name="product" id="product" placeholder="Product...">
    <br>
    <input id="submit" type="submit" value="Search">

</form>

PHP:

<?php
$conn = new mysqli($servername, $username, $password, $dbase);

if ($conn->connect_error) {
   echo "Connection failed: ". $conn->connect_error;
}

if(empty($_GET['product']) ){
   die('please input a search!');
} else {

$product = mysqli_real_escape_string($conn, $_GET['product']);

$sql = "SELECT * FROM products WHERE product = '$product'";
$result = $conn->query($sql);


?>

<?php
if ($result->num_rows > 0){
  //output each row
  while($row = $result->fetch_assoc()){#
            echo '<tr>';
            echo '<td>'.$row['product'].'</td>';
            echo '<td>'.$row['brand'].'</td>';
            echo '<td>'.$row['cost'].'</td>';

   /*This is the path here, it pulls the image path from the database 
   ("img/Image-Name") and puts it in a "src" attribute*/
    echo '<td>' ."<img src=/'" .$row['image']."' />" .'</td>';
    echo '<td>'.$row['specification'].'</td>';    
    echo '</tr>';
    echo '</table>';
    echo '</div>';
  }
} else {
   echo "Sorry, we could not find any products relating to your search.";
}

}


mysqli_close($conn);
?>

【问题讨论】:

    标签: php html


    【解决方案1】:

    变化:

    echo '<td>' ."<img src=/'" .$row['image']."' />" .'</td>';
    

    到这个

    echo '<td>' ."<img src='" .$row['image']."' />" .'</td>';
    

    或者到这个

    echo '<td>' ."<img src='/" .$row['image']."' />" .'</td>';
    

    取决于你是否真的需要路径开头的正斜杠。

    【讨论】:

    • 比我快 8 秒 ;)
    • 当我看到弹出两个答案时正在输入相同的内容 XD
    • 感谢您的帮助。设法让它与它一起工作并仔细检查文件扩展名。
    【解决方案2】:

    这将产生无效(或半有效,因为 HTML 是可以原谅的)HTML:

    echo '<td>' ."<img src=/'" .$row['image']."' />" .'</td>';
    //                      ^ Note the open-quote is AFTER the /
    // So this will look like
    <img src=/'img/product.jpg' />
    

    而不是你可能想要的

    <img src='/img/product.jpg' />
    

    【讨论】:

    • 谢谢伙计。我赞成它,但因为我的声誉太低,它没有显示出来。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多