2013-07-19 50 views
0

我創建一個「買和賣」的網站在PHP初學者項目需要輸出數組從功能:(

我有一個「advert_images」,這是3列

ID。| advert_id |映像路徑 _ | __ _ | __ _ ____

id列是AI並未使用。當我將數據放入數據庫時​​,我從發佈時的廣告代號開始,只記錄旁邊的圖像路徑。

現在在廣告頁面上我想要輸出這些圖像......但我無法讓我的腦袋爲此寫入功能。我一直在這幾個小時,現在想和適應的事情,我已經看到了這個網站,但它不會點擊...

function get_images($adverts_id){ 
$query = mysql_query("SELECT * FROM `advert_images` WHERE `advert_id` = " .$adverts_id . ""); 
while (($row = mysql_fetch_assoc($query)) !== false){ 
    $row['image_path']; 
    echo ($row['image_path']); 
    } 
} 

這僅僅是與此相呼應:

images/adverts/52f0f5f8cc2c099d0c.jpgimages/adverts/9f1579b69deb751161852.jpgimages/adverts/1d0d4ff0b2c40834c7aa.jpgimages/adverts/8ea518b393eebfd0cd0.jpgimages/adverts/3566957b0d3dfdfa3c.jpg 

所以它不是一百萬英里遠離工作,但我想它,所以我可以調用每個圖像單獨...

每個廣告可以在advert_images

任何幫助將是保存0-5圖像什麼G非常感謝。就像我說的,我只是堅持和新鮮的想法:(

+1

請不要使用'mysql_'功能了,因爲他們已經過時;請查看[PDO](http://php.net/pdo)或[mysqli](http://php.net/mysqli)。 –

回答

1

如果是普通的HTML,你不需要表或div標籤,這是校正功能:

function get_images($adverts_id) { 
    if ($query = mysql_query("SELECT * FROM `advert_images` WHERE `advert_id` = '{$adverts_id}'")) { 
     if (mysql_num_rows($query) > 0) { 
      while ($row = mysql_fetch_assoc($query)) { 
       $output[] = $row["image_path"]; 
      } 

      return $output; 
     } 
    } 
} 

然後,你可以這樣做:

foreach (get_images($adverts_id) as $image) { 
    print "<img src=\"{$image}\" alt=\"\">"; 
} 

希望幫助;)

+0

請不要用'print'呈現HTML。 – Dyin

+0

這裏無關緊要的是,使用'echo'還是'print'作爲發送HTML輸出的方法更準確,更準確或更快。 –

+0

請不要使用打印或回聲呈現HTML! :)特別不適合新手,他們會嘔吐。 – Dyin

0

像這樣的事情吧?

echo ("<img src='".$row['image_path']."'>"); 
0

這應該讓你的輸出成爲一個數組。

<?php 
function get_images($adverts_id){ 
    $query = mysql_query("SELECT * FROM `advert_images` WHERE `advert_id` = " .$adverts_id . ""); 
    $return = array(); 
    while (($row = mysql_fetch_assoc($query)) !== false){ 
     $return[] = $row['image_path']; 
    } 
    return $return; 
} 

如果你想創建圖像標籤,從這裏就可以做這樣的事情:

$images = get_images($ad_id); 
foreach($images as $image){ 
    echo '<img src="'.htmlspecialchars($image).'"/>'; 
} 
+0

很棒!謝謝:) –

0

首先,你不應該選擇所有列,如果你最終只會使用單列。其次,我建議切換到PDO和準備語句:

function get_images(PDO $db, $adverts_id) 
{ 
    $stmt = $db->prepare('SELECT image_path 
     FROM advert_images 
     WHERE advert_id = :advert' 
    ); 
    $stmt->execute(array(':advert' => $adverts_id)); 

    return $stmt->fetchAll(PDO::FETCH_COLUMN, 0); 
} 

,然後調用它:

echo join('', array_map(function($imagePath) { 
    return sprintf('<img src="%s" />', htmlspecialchars($imagePath)); 
}, get_images($db, 123); 
+0

一週前我開始PHP了lol我很快就會學習PDO。 –

+0

@SteHughes這很好。我在此同時將這個答案留給其他人:) –