我正在使用 PHP 开关从我的 mysql 数据库中获取两个相同的条目。我已经将问题隔离到这里,也许有人可以放纵我? $mySQL->Fetch() 只是获取查询中的下一行。
这是我正在使用的:
while($row = $mySQL->Fetch())
{
switch($filter)
{
case 1:
case 2:
$data[] = array(150, $row["lastName"]);
$data[] = array(125, $row["firstName"]);
$data[] = array(100, $row["city"]);
$data[] = array(75, $row["state"]);
$data[] = array(100, FormatPhone($row["phone"]));
$data[] = array(125, $row["registrationDate"]);
$data[] = array(125, $row["expirationDate"]);
$id = $row["id"];
echo "<a href=\"?dp=profile&filter=member&id=$id\"><ul class=\"search\">";
foreach($data as $key => $value)
{
echo "<li style=\"width:$value[0]px\">$value[1]</li>";
}
echo "</ul></a>";
break;
}
}
出于某种原因,列表不断增加。我一定是忽略了一些明显的东西,但我就是找不到它。
这是 HTML 输出的内容:
<ul class="search">
<li style="width:150px">Jones</li>
<li style="width:125px">Bob</li>
<li style="width:100px">City</li>
<li style="width:75px">NH</li>
<li style="width:100px">(123) 456-7890</li>
<li style="width:125px">2013-01-20</li>
<li style="width:125px">2014-07-31</li>
<li style="width:150px">Doe</li>
<li style="width:125px">Jane</li>
<li style="width:100px">Little Town</li>
<li style="width:75px">NH</li>
<li style="width:100px">(123) 456-7890</li>
<li style="width:125px">2013-01-20</li>
<li style="width:125px">2014-07-31</li>
</ul>
它结合了两个,而不是一个。但我确保关闭了我的无序列表标签。更不用说,此后的每个条目的大小都在继续增长,合并了迄今为止的所有条目。我每次都需要清除查询吗?谢谢
最佳答案
发生的事情是在第一次迭代中添加第 1 次之后,对于下一次迭代,它再次将下一个元素放入 $data
中,就像您使用的那样 $data[]= $next_element
,以前的数据不会从 $data 数组中删除,因此在每次迭代后,取消设置数组。这应该有效。
关于PHP 在 while 循环中切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14432961/