-2

我创建了一个名为 movie 的数据库,并且有一个名为 test_image 的表(id int autoincrement,name varchar(30),image blob)。数据是在 php 代码的帮助下插入的。现在我已经在以下代码的帮助下显示了图像:


<?php
$host="yourhostname";
$user="username";
$pass="password";
$db="movie";

// just so we know it is broken
error_reporting(E_ALL);

//connect to the db
$link = mysql_connect("$host", "$user", "$pass") or die("Could not connect: " . mysql_error());

// select our database
mysql_select_db("$db") or die(mysql_error());

// get the image from the db
$sql = "SELECT image FROM test_image;";

// the result of the query
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());

// set the header for the image
header("Content-type: image/jpeg");

echo mysql_result($result, 0);

// close the db link
mysql_close($link);

?>


如果我想在数据库中显示图像的幻灯片,它现在只显示一张图像我必须进行哪些更改?

4

3 回答 3

0

您的代码中缺少一些内容

mysqli

<?
//no more mysql_ means start using mysqli
$mysqli = new mysqli('host', 'username', 'password', 'database'); //connect
$query = "SELECT image FROM test_image"; // your query
$result = $mysqli->query($query); // Fetch Result
//now do something with that result
foreach ($result as $row){
   echo "<img src=\"$row['image']\">";
}
?>
于 2013-03-19T07:50:00.490 回答
0

现在我已经包含了用于图像幻灯片的 js。我已经像这样编辑了我的代码:

<?php
include "file_constants.php";//in this file connection is established with db
header('Content-Type: text/html; charset=utf-8');
$sql="SELECT * FROM test_image;";
$result=mysqli_query($con,$sql) or die("invalid query ".mysqli_error());
$array=array();
while($row=mysqli_fetch_array($result))
{
$array[]=$row['image'];
}
 ?>


           <html>
           <body>

    <title>Slideshow</title>
    <h1>Slideshow of images stored in mysql</h1>
    <script language="javascript">
        var delay=1000; 
        var curindex=0;


        var randomimages=["$array[0]","$array[1]","$array[2]","$array[3]","$array[4]","$array[5]"];

        var preload=[],img,curindex,tempindex;

        for (var n=0;n<randomimages.length;n++)
        {
            img=new Image();
            img.src=randomimages[n];
            preload.push(img);
        }

        document.write('<img name="defaultimage" src="'+randomimages[Math.floor(Math.random()*(randomimages.length))]+'">');

        function rotateimage()
        {
            if (curindex==(tempindex=Math.floor(Math.random()*(randomimages.length))))
            {
                curindex=curindex==0 ? 1 : curindex-1;
            } else
            {
                curindex=tempindex;
            }

            document.images.defaultimage.src=randomimages[curindex];
        }

        window.setInterval(rotateimage,delay);
    </script>
</body>
     </html>

但是这段代码不显示图像......

于 2013-03-21T05:16:03.300 回答
-1

简单步行抛出结果集:

while($row = mysql_fetch_assoc($result)){
    echo $row[0];
}

请注意您使用过时的功能。请使用 mysqli ( http://php.net/manual/de/book.mysqli.php )

于 2013-03-19T07:43:09.970 回答