php - 使用 mysql_fetch_array() 显示一些图像

标签 php mysql sql

我必须创建一些 php 页面,允许您插入和显示一些随机图像(在我的 mysql 数据库中保存为 blob)。 好吧,当我尝试它时,它给我这个错误:警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源。 这是我的页面:

 $n="SELECT COUNT('id_product')
 FROM 'products'";
$value=mysql_query($n);

do
{
 $selectionASC='SELECT id_product 
        FROM products 
        ORDER BY id_product ASC
        LIMIT 1';
 $selectionDESC='SELECT id_product 
         FROM products 
         ORDER BY id_product DESC
         LIMIT 1';
  $ASC=mysql_query($selectionASC)
    or die ('Impossible execute the query <br />').mysql_error();
  $DESC=mysql_query($selectionDESC)
    or die ('Impossible execute the query <br />').mysql_error();

  //____________________________________________________________________
  $rand_n=rand(($ASC-1),($DESC+1));

  //____________________________________________________________________
  $selected='SELECT id_product,name, price, img
         FROM products
         WHERE id_product='.$rand_n;
  //____________________________________________________________________
  while($row=mysql_fetch_array($selected))
        {
            echo "Product'id: &nbsp"; echo $row[0];
            echo '<br />';
            echo "Name: &nbsp"; echo $row[1];
            echo '<br />';
            echo "Price:: &nbsp"; echo $row[2];
            echo '<br />';
            echo "Immage: <img src='images/".$row['img']."' alt='Image'>";;
            echo '<hr> <br />';

            $value--;
        }
}
while ($value==0)

有人可以告诉我我错在哪里吗?感谢并为我糟糕的英语感到抱歉!

编辑:

$allowedExts=array("gif", "jpeg", "jpg", "png");

if(isset($_POST['submit']))
  {
   $temp=explode(".", $_FILES["file"]["name"]);
$extension=end($temp);

if(isset($_FILES['file']['name']))
{
    if(!empty($_FILES['file']['name']))
    {
        $directory='\www\v1.2\loaded';
        $uploadfile = $directory . basename($_FILES['file']['name']);

        if ((($_FILES["file"]["type"] == "image/gif")
             || ($_FILES["file"]["type"] == "image/jpeg")
             || ($_FILES["file"]["type"] == "image/jpg")
             || ($_FILES["file"]["type"] == "image/pjpeg")
             || ($_FILES["file"]["type"] == "image/x-png")
             || ($_FILES["file"]["type"] == "image/png"))
             && ($_FILES["file"]["size"] < 20000)
             && in_array($extension, $allowedExts))
        {
                if ($_FILES["file"]["error"] > 0)
                {
                 echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
                }
                else
                {
                //$nameImage=$_FILES(["file"]["name"]);
                $typeImage=$_FILES["file"]["type"];
                $sizeImage=$_FILES["file"]["size"];

                    if (file_exists("upload/" . $_FILES["file"]["name"]))
                     {
                          echo $_FILES["file"]["name"] . " already exists. ";
                     }
                    else
                    {
                          if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) 
                          {
                              $insert="INSERT INTO 'img'
                               VALUES ('','$uploadfile','$typeImage','$sizeImage')";
                              echo "File's extension valid, upload executed";
                          }
                          else
                          {
                           echo "Upload failed: ceck the size and the extension";
                          }
                        }
                }
        }
        else
        {
        echo "Invalid file";
        }
    }
}

}

最佳答案

不要在数组中传递img。你必须传递索引号,因为你已经使用了mysql_fetch_array 因此,从代码中替换这一行,

  echo "Immage: <img src='images/".$row['img']."' alt='Image'>";;

echo "Immage: <img src='images/".$row['3']."' alt='Image'>";

这里我猜 img url 存储在第三个索引上。请务必检查图像索引并替换 3 的值

================================================== ===================================

使用mysql_fetch_assoc的更好方法。在这种情况下,您不需要从数据库中查找列的索引

只需替换代码中的 while 循环即可。 绝对有效

while($row=mysql_fetch_assoc($selected))
        {
            echo "Product'id: &nbsp"; echo $row['id_product'];
            echo '<br />';
            echo "Name: &nbsp"; echo $row['name'];
            echo '<br />';
            echo "Price:: &nbsp"; echo $row['price'];
            echo '<br />';
            echo "Immage: <img src='images/".$row['img']."' alt='Image'>";
            echo '<hr> <br />';

            $value--;
        } 

关于php - 使用 mysql_fetch_array() 显示一些图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644988/

相关文章:

PHP 在 MYSQL 查询中使用 session

javascript - PHP : insert multiple check boxes values into one MySQL column

PHP 连接在加载时收到错误

php - 如何在phpMyAdmin中编写存储过程?

php - 将统计数据保存在 MySQL 数据库中以绘制折线图

mysql - SQL - 结果由多行组成

mySQL:从多个表中选择数据

sql - ActiveRecord 在 Rails 中加入查询并选择

php - 计算不同表的平均值

mysql - 如何更新sql中的日期