-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);

?>


データベース内の画像をスライドショーしたい場合、現在は1つの画像しか表示されません。どのような変更を加える必要がありますか??

4

3 に答える 3

0

コードに少し欠けています

みずい

<?
//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 に答える