2013-03-01 55 views
0

我一直在尝试不同的事情,以便让脚本查询图像名称的MySql数据库,然后转到目录并返回具有相同名称的图像。它在概念上似乎很简单,但我不断得到一堆混合结果,并且没有结果返回图像。位于目录中的图像;图像名称在MySql中加载。 PHP脚本没有返回图像

这里是最近的代码,我想:

$sqlCar = mysql_query("SELECT img_nm FROM vehicles WHERE sold='n' ORDER BY year DESC"); 

/*************************** 
**** 
Code Returns '1' 
******************************/ 

$dbImage = $sqlCar; 
$dirImage = scandir($_SERVER['DOCUMENT_ROOT'].'/car-pics/'); 

    function imgCompare($dbImage){ 
    if ($dbImage == $dirImage[img_nm]){ 
     echo $dirImage[img_nm]; 
    } else { 
     echo "Image Coming Soon"; 
    } 
} 

回答

1

你不加入$ dirImage作为参数传递给函数。你就可以把它作为一个参数,或添加全局关键字你的函数像这样的第一行解决这个问题:

function imgCompare($dbImage){ 
    global $dirImage; 

    if ($dbImage == $dirImage[img_nm]){ 
     echo $dirImage[img_nm]; 
    } else { 
     echo "Image Coming Soon"; 
    } 
} 

而且,是什么值在数据库img_nm? scandir使用一组索引值。所以$ dirImage [0]可以工作,但$ dirImage ['filename.jpg']不会。

+0

嗯..加上它作为一个参数,并加入全球没有帮助。存储在数据库中的值与目录中的文件名相同。所以img_nm = vehicle1.jpg&directory is home/car-pics/vehicle1.jpg – khaos 2013-03-02 00:08:52

+0

看看安东尼的回答。 mysql_query返回一个结果集资源,你需要调用mysql_fetch_array来从资源中获取值。 – 2013-03-02 00:15:30

+0

感谢您的帮助亚当! – khaos 2013-03-02 01:18:08

0

mysql_query函数不会将您正在查找的值直接返回到可直接访问的$ sqlCar中。

你将不得不这样做

$row = mysql_fetch_array($sqlCar); 

然后引用数组来获取图像名称

$dbImage = $row['img_nm']; 
+0

亚当也是对的。您没有将$ dirImage传递给该函数。 – antoni 2013-03-01 23:38:08

+0

我试着向它添加一个mysqli_fetch_array(从PHP 5.5.0开始弃用mysql_fetch_array),并且我一直收到mysql_result()错误。 – khaos 2013-03-02 00:10:24

+0

你正在运行5.5吗? mysql_query也被弃用。你需要在5.5中使用mysqli_query()。 http://php.net/manual/en/function.mysql-query.php – antoni 2013-03-02 00:28:53