2016-11-24 6 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 [] = $ image; 'と書くだけです。 – RJParikh

+0

はい、動作しますが、結果ごとに2回印刷します。すべての値は、出力に二重です:あなたは、エコー画像値の2のforeachを取っている理由chd1.jpg chd2.jpg chd2.jpg chd3.jpg chd3.jpg chd4.jpg chd4.jpg – Ravin

+0

。 foreachの 'foreach($ imagesの$ images)で書くだけです。 { echo $ image; } ' – RJParikh

答えて

0

$sliderImages->fetch()によって返される配列のデフォルトの型はPDO::FETCH_BOTHです。すべての列は、名前付きインデックスと数値インデックスの両方を返します。だからこそ、あなたはそれぞれのイメージを2度見ているのです。数値インデックスだけを取得するには、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

です。コードは機能していますが、値は2回印刷されます。出力は重複しています。出力は次のとおりです。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);は何を表示しますか? – Barmar

関連する問題