2013-04-03 73 views
0

我試圖根據數組中的id爲10個不同的行提取圖像鏈接。它似乎打破了當查詢是在循環..任何想法我可以做到這一點?在PHP/MYSQL中獲取多行

$array = array(54, 319, 342, 298, 281, 190,178,158,138,7); 


$shuffleKeys = array_keys($array); 
shuffle($shuffleKeys); 
$newArray = array(); 
foreach($shuffleKeys as $key) { 
    $newArray[$key] = $array[$key]; 
} 


for($i=0;$i<=count($newArray);$i++){ 

    $query = "SELECT logoName,logoImageLink, logoImageLink2, countryImg, logoArtist, afterText, country FROM logos WHERE id = $array($i)  "; 
    $result = mysql_query($query); 


    /* fetch rows in reverse order */ 
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) { 
    if (!mysql_data_seek($result, $i)) { 
     echo "Cannot seek to row $i: " . mysql_error() . "\n"; 
     continue; 
    } 

    if (!($row = mysql_fetch_assoc($result))) { 
     continue; 
    } 

    $imageLink = $row['logoImageLink']; 

    echo "<li class=\".$array($i).\" ><img src=\".$imageLink.\" /></li>"; 
} 
+3

[**請不要在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo

回答

2

您可以使用MySQL IN子句並在單個選擇中執行此操作。

$ids = join(',',$newArray); 
$query = "SELECT logoName,logoImageLink, logoImageLink2, countryImg, logoArtist, afterText, country FROM logos WHERE id IN ($ids)"; 
$result = $mysqli->query($query); 

while ($row = $result->fetch_assoc()) { 
    $imageLink = $row['logoImageLink']; 

    echo "<li><img src=\"$imageLink\"/></li>"; 
} 
+0

這是否就像創建一個multli級別的數組?或者我如何得到IDImage 342然後190等logoImageLink? –

+0

好的..我已經看到了這一點。但是我對它的工作原理還是有些困惑......所以如果我想說只是在數組中爲每個ID打印logoImageLink,我怎麼能用這個給定的值呢?如果我能看到我認爲我得到了它。 thx爲你的幫助。 –

+0

$ row是一個包含所有返回字段的數組,您可以按照您在問題中的確切方式使用它。 –