2015-11-27 51 views
0

嘿家伙有一些麻烦,我的PHP脚本。我试图让页面打印图像。图像不存储在数据库中,它们存储在一个文件夹中。数据库具有图像的名称。这到目前为止我已经有多远了。phpmyadmin链接图像src

<?php 
require_once "lib/dbutils2.php"; 
?> 
<html> 
<body> 
<?php 
$pdo = connect(); 
$results = $pdo->query("SELECT * FROM books WHERE bookid=".$_REQUEST['bookid']); 
foreach($results as $row) { 
    print("<tr>"); 
    print("<h1>".$row['title']."</h1>"); 
    print("<table><tr>"); 
    echo '<td><img src=`enter code here`"/images"' . $row['image'] . '"></td>'; 
    print("<td>".$row['description']."</td>"); 
    print("</tr></table>"); 
    print("<ul>"); 
    print("<li>Publisher: ".$row['publisher']."</li>"); 
    if ($row['instock'] == 1) { 
    print("<li>In stock: Yes</li>"); 
    } else { 
    print("<li>In stock: No</li>"); 
    } 
    print("</ul>"); 
    print("<p><big><strong>PRICE: &pound;".$row['price']."</strong></big></p>"); 
} 
?> 
<p><a href="books.php">Back to list</a></p> 
</body> 
</html> 
+1

忽略我认为粘贴到SO的错误,你的''/ images'''可能实际上是想成为''images /'',注意删除一个'''并且添加'/'。 –

+1

另外,这与phpMyAdmin有什么关系?查找准备好的语句,您正在使用PDO,因此请安全地使用它,此刻您有SQL注入漏洞。 –

+0

道歉,我的第二个代码块应该有读''/ images /''。 –

回答

0

你必须指定img文件扩展名。 让我们说你把所有IMGS在IMG /文件夹你的真实图像文件的扩展

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

变化名为.jpg

+0

请您详细说明一下。 –

+0

我会给它一个去感谢! –

+0

首先,机会是扩展是在变量'第二,扩展是不需要的,它们只是文件名的一部分,如果需要的话,它们不是文件的需求,第三,为什么用'img/'(这btw是一个相对路径,这可能会混淆事项)当OP使用'图像'文件夹... –

0

得到它的工作的家伙,你的答复Nicolo的Cozzani感谢。

<?php 
require_once "lib/dbutils2.php"; 
?> 
<html> 
<body> 
<?php 
$pdo = connect(); 
$results = $pdo->query("SELECT * FROM books WHERE bookid=".$_REQUEST['bookid']); 
foreach($results as $row) { 
    print("<tr>"); 
    print("<h1>".$row['title']."</h1>"); 
    print("<table><tr>"); 


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


    print("<td>".$row['description']."</td>"); 
    print("</tr></table>"); 
    print("<ul>"); 
    print("<li>Publisher: ".$row['publisher']."</li>"); 
    if ($row['instock'] == 1) { 
    print("<li>In stock: Yes</li>"); 
    } else { 
    print("<li>In stock: No</li>"); 
    } 
    print("</ul>"); 
    print("<p><big><strong>PRICE: &pound;".$row['price']."</strong></big></p>"); 
} 
?> 
<p><a href="books.php">Back to list</a></p> 
</body> 
</html> 
0

好吧,让我们来看看你的代码,具体如下:

echo '<td><img src=输入代码在这里"/images"' . $row['image'] . '"></td>';

首先,我们假设这部分被粘贴搞乱成左右,所以我们最终得到:

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

接下来,我们假设你的$row['image']看起来像image_file_name.png使代码将输出:

<td><img src="/images"image_file_name.png"></td>

有几个明显的问题在这里。首先,你不处理图像的文件夹,但预挂起映像名称,所以让我们更新:

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

注意额外的斜线,所以现在我们得到:

<td><img src="/images/"image_file_name.png"></td>

接下来的问题是你实际上在images/之后关闭了src属性。解决这个问题,我们得到:

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

这将作为渲染:

<td><img src="/images/image_file_name.png"></td>

这看起来很多更有效的给我。

+0

好,然后downvoter。请解释。 –

+0

我非常感谢您的详细解答,我已经解决了这个问题,但您的答案非常丰富。谢谢。 –

+0

@DonDraper答案只是我在评论你的问题15分钟之前评论你说你已经解决了它的延伸:) –