0

我正在尝试根据数组中的 id 提取 10 个不同行的图像链接。当查询处于循环中时,它似乎中断了。我有什么想法可以做到这一点吗?

$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>";
}
4

1 回答 1

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>";
}
于 2013-04-03T18:23:37.253 回答