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


send ID to PHP script and return img src tag from DB filename

我确实在努力做一些简单的事情,但我已经看过并测试过了,我做的事情不对。我有一个存储图像文件名的DB,我需要根据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;

 ?>

任何帮助都将不胜感激,感谢堆

从外观上看,您太难将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"];

我希望你能给我更多关于你想做什么的信息,我很乐意给你一个更好的例子。

确保您的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="" />

由于您使用$_GET数组,您将希望通过URL发送ID,例如:

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

这是假设您想继续对此脚本使用$_GET。