2016-11-24 23 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