php + mysql图片幻灯片

时间:2013-03-19 07:36:32

标签: php mysql

我创建了一个名为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);

&GT;


它只显示一张图片 现在如果我想在数据库中幻灯片显示我必须做出哪些改变?

3 个答案:

答案 0 :(得分: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']\">";
}
?>

答案 1 :(得分: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>

但是这段代码没有显示图片......

答案 2 :(得分:-1)

简单步行抛出结果集:

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

请注意你使用了obsolte功能。请使用mysqli(http://php.net/manual/de/book.mysqli.php