将ID发送到PHP脚本并从DB文件名返回img src标记

时间:2012-03-11 15:34:13

标签: php html

我正在尝试做一些简单的事情我确定但是我已经看过并且经过测试,我没有做正确的事情。 我有一个存储图像文件名的数据库,我需要根据HTML中的ID获取文件名,让我解释一下:

 <div class="slide">
                    <div class="image-holder">
                       <img src="img/asoft_table.jpg" alt="" /> 
                    </div>
                    <div class="info">

                        <p>Morbi a tellus lorem, id scelerisque ligula. Maecenas vitae turpis et.</p>
                    </div>
                </div>
                <div class="slide">
                    <div class="image-holder">
                        <img src="img/soft_table.jpg" alt="" />
                    </div>
                    <div class="info">

                        <p>Sed semper, lorem ac lobortis bibendum, magna neque varius augue, vel accumsan.</p>
                    </div>
                </div>
                <div class="slide">
                    <div class="image-holder">
                        <img src="img/living_room2.jpg" alt="" />
                    </div>

在每个img标签的实例中,我需要从DB插入文件名。因此,第一图像标签将是主键1,第二主键2等等。 这是我用来检索文件名的PHP脚本,但是我不确定如何将图像的ID发送到脚本然后正确地返回。

 <?php
 $hote = 'localhost';
 $base = '*****';
 $user = '*****';
 $pass = '*****';
 $cnx = mysql_connect ($hote, $user, $pass) or die(mysql_error ());
 $ret = mysql_select_db ($base) or die (mysql_error ());
 $image_id = mysql_real_escape_string($_GET['ID']);
 $sql = "SELECT image FROM image_upload WHERE ID ='$image_id'";
 $result = mysql_query($sql);
 $image = mysql_result($result, 0);

 header('Content-Type: text/html');
 echo '<img src="' . $image . '"/>';
 exit;


 ?>

感谢任何帮助,感谢一堆

3 个答案:

答案 0 :(得分:1)

从看起来你很难将PHP与HTML分开。

// File: index.php
<?php
    $hote = 'localhost';
    $base = '*****';
    $user = '*****';
    $pass = '*****';
    $cnx = mysql_connect ($hote, $user, $pass) or die(mysql_error ());
    $ret = mysql_select_db ($base) or die (mysql_error ());
    $image_id = mysql_real_escape_string($_GET['ID']);
    $sql = "SELECT image FROM image_upload WHERE ID ='$image_id'";
    $result = mysql_query($sql);
    //$image = mysql_result($result, 0);

    $image = array();

    while ($row = mysql_fetch_assoc($result)) {
        $image[] = $row["image"];
    }
?>
<html>
    <head>
    </head>
    <body>
        <div class="slide">
            <div class="image-holder">
                <img src="<?php echo $image[0];?>" alt="" /> 
            </div>
            <div class="info">
                <p>Morbi a tellus lorem, id scelerisque ligula. Maecenas vitae turpis et.</p>
            </div>
        </div>
        <div class="slide">
            <div class="image-holder">
                <img src="<?php echo $image[1];?>" alt="" />
            </div>
        <div class="info">
            <p>Sed semper, lorem ac lobortis bibendum, magna neque varius augue, vel accumsan.</p>
        </div>
    </div>
<div class="slide">
    <div class="image-holder">
        <img src="<?php echo $image[2];?>" alt="" />
    </div>
</body>
</html>


// This is the magic code to get all the rows out of the database :)
// $row[ field_name ];
while ($row = mysql_fetch_assoc($result)) {
    $image[]  $row["image"];
}



编辑:
我不确定这是否是你想要完成的,但我想我还是要分享。

$imageID1 = $_GET['id1'];
$imageID2 = $_GET['id2'];
$imageID3 = $_GET['id3'];

$sql = "SELECT image FROM image_upload ";
$sql = "WHERE ID = $imageID1 OR ID = $imageID2 OR ID = $imageID3";

//The rest of your code can remain the same.

或者如果一个id与3个图像有关。

    $sql = "SELECT * FROM image_upload WHERE ID ='$image_id'";
    $result = mysql_query($sql);

    $image = array();

    $row = mysql_fetch_assoc($result);

    $image1 =  $row["image1"];
    $image2 =  $row["image2"];
    $image3 =  $row["image3"];

我告诉你有关你想做什么的更多信息,我很乐意给你一个更好的例子。

答案 1 :(得分:1)

确保您的HTML文件实际上是一个php文件。将PHP代码放在其顶部,然后将HTML放在它下面。你可以使用

<?php echo $image; ?> 

将变量放入如下:

<div class="slide">
    <div class="image-holder">
        <img src="<?php echo $image; ?>" alt="" />
    </div>
    <div class="info">
        <p>Sed semper, lorem ac lobortis bibendum, magna neque varius augue, vel accumsan.</p>
    </div>
</div>

使用htmlentities来保证安全性(避免javascript注入)总是一个好主意:

<img src="<?php echo htmlentities($image, ENT_QUOTES, "UTF-8"); ?>" alt="" />

答案 2 :(得分:0)

由于您使用的是$ _GET数组,因此您需要通过URL发送ID,例如:

http://www.example.com/image.php?ID=5

假设你想继续为这个脚本使用$ _GET。