在PHP中意外无限循环

时间:2016-03-06 00:19:29

标签: php loops while-loop infinite-loop

您好我已创建了一个while循环,但无法理解为什么它会永远循环。有人可以解释一下原因吗?

while ($i<3){
  if ($i=1){
    $x='psu';
  }else if ($i=2){
    $x='cases';
  }
  $sqlcpu = "SELECT * FROM $x WHERE name LIKE '%{$term}%'";
$query = mysqli_query($db, $sqlcpu);

while ($row = mysqli_fetch_array($query)){
?><br /> Name: <a  href="productpage<?php $x ?>.php?idcpu=<?php echo $row['id$x'] ?>"><?php echo $row['name'];?></a>
<?php
echo ' Price: &pound;'.$row['price'];
}
  $i++;
}

此代码还有其他问题,但它们现在不是我主要关注的问题,因为这个循环看起来应该很简单。在$ i = 1

之后,变量$ x和$ i永远不会改变

1 个答案:

答案 0 :(得分:1)

如果($ i = 1)你在这里给1到$ i,而不是比较1和$ i,使用

if ($i==1)

代替。

可以使用

代替for / if-elseif构造
foreach( array('psu', 'cases') as $table ) {
    $sqlcpu = "SELECT * FROM $table WHERE name LIKE '%{$term}%'";