php foreach()w/MySQL WHERE w/while {}仅返回最后一个array()项

Old*_*est 0 php arrays foreach while-loop

我的结果是吐出每个记录的副本而不是唯一的foreach匹配.正如你所看到的,我试图循环并获得每个唯一值WHERE $ s = id ..我知道查询需要在while()内,

数组$研讨会从我表单上的复选框传递.

if ($seminar) {
    foreach ($seminar as $s)
        $interest .= "$s ";
}
Run Code Online (Sandbox Code Playgroud)

注意:$ interest是我用来插入表格的(这不是这个问题的一部分)

对于数组数据,这是$ seminar返回的内容

Array
(
    [0] => 1
    [1] => 8
    [2] => 9
    [3] => 10
    [4] => 13
)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

$query_seminars = mysql_query("SELECT id, name, UNIX_TIMESTAMP(moment) FROM seminars WHERE id={$s}");
    while ($sem_row = mysql_fetch_assoc($query_seminars))
    {
        $names .= "-- " . $sem_row['id'] . " " . $sem_row['name'] . date('D, F j, Y, g:i a',     $sem_row['moment']) . "<br />";

}
Run Code Online (Sandbox Code Playgroud)

Bri*_*ham 5

你不需要while循环中的foreach,这里:

$query_seminars = mysql_query("SELECT id, name, UNIX_TIMESTAMP(moment) FROM seminars WHERE id={$s}");
while ($sem_row = mysql_fetch_assoc($query_seminars))
{
    $names .= "-- " . $sem_row['id'] . " " . $sem_row['name'] . date('D, F j, Y,     g:i a', $sem_row['moment']) . "<br />";
}
Run Code Online (Sandbox Code Playgroud)

使用方法也使用命名的索引mysql_fetch_assoc,没有mysql_fetch_array.(已在上面的代码中)