2016-11-24 33 views
0
$batchImage = array(); 
    $i = 0; 
    $sliderImages = $dbh->prepare("select image1, image2, image3, image4 from centres where centre_id = 1 "); 
    $sliderImages -> execute(); 
    $images = $sliderImages -> fetch(); 
    /*$img_1= $images['image1']; 
    $img_2 $images['image2']; 
    $img_3 $images['image3']; 
    $img_4 $images['image4'];*/ 
    foreach($images as $image) 
    { 
     $batchImage[$i] = $image; 
     $i++; 
    } 
    foreach($batchImage as $im) 
    { 
     echo $im; 
    } 
+0

$除去i和$ I ++和只写'$ batchImage [] = $图像;' – RJParikh

+0

是那工作,但每结果打印两次。所有数值在输出都是双:chd1.jpg chd2.jpg chd2.jpg chd3.jpg chd3.jpg chd4.jpg chd4.jpg – Ravin

+0

为什么你正在服用2的foreach回声图像值。只是在写的foreach'的foreach($图像作为图像$) { 回声$图像; }' – RJParikh

回答

0

通过$sliderImages->fetch()返回的数组的默认类型是PDO::FETCH_BOTH。每列都返回一个名字和数字索引。这就是为什么你看到每个图像两次。要获得数字索引,请使用PDO::FETCH_NUM

$sliderImages = $dbh->prepare("select image1, image2, image3, image4 from centres where centre_id = 1 "); 
$sliderImages->execute(); 
$batchImage = $sliderImages->fetch(PDO::FETCH_NUM); 
foreach($batchImage as $im) 
{ 
    echo $im; 
} 

您也可以使用PDO::FETCH_ASSOC来获取指定的索引。

+0

该代码是工作的最佳方式,但它打印值的两倍。输出是重复的。输出是:chd1.jpg chd1.jpg chd2.jpg chd2.jpg chd3.jpg chd3。 jpgchd4。 jpgchd4.jpg我想要结果:chd1..jpg chd2.jpg chd3.jpg chd4。 jpg – Ravin

+0

如果您更改为不应发生的'PDO :: FETCH_NUM'。 – Barmar

+0

'var_dump($ sliderImages);'show? – Barmar