0

第二次查询的结果覆盖了第一次查询的结果。我以前从未遇到过类似的问题。

mysql表:

updateid    picture  movie  
  14          1       1  
  22          0       1  
  33          1       0

.php 文件:

<div id="imagecheck">
<?php 
$image_check= query("SELECT picture FROM list WHERE updateid = '$updateid' ");
foreach ($row as $image_check);

if (!($image_check))
{
?>

    <div class="result" id="camera<?php echo $updateid ?>">FOO</div>

<?php
}
else 
{
    ?>
    <div class="result" id="camera<?php echo $updateid ?>">BAR</div>

    <?php
}

?>
</div>
<div id="moviecheck">

  <?php 
  $movie_check = query("SELECT movie FROM list WHERE updateid = '$updateid' "); 
  foreach ($row as $movie_check);
    if  (!($movie_check))
    { 
    ?>
 <div class="result1" id="movie<?php echo $updateid ?>">FOO</div>

<?php
}
else 
{
    ?>
    <div class="result1" id="movie<?php echo $updateid ?>">BAR</div>

    <?php
}

?>

当我运行这两个查询时,结果为

14 回声 BAR BAR

22 回声 FOO FOO

33 回声 FOO FOO

有什么想法可能会出错吗?

4

1 回答 1

4

应该是笔误吧。您正在使用可变变量:

  foreach ($row as $$movie_check);
                   ^^--- note the doubled $

例如

$x = 'foo';
$foo = 'bar';
echo $$x; // outputs 'bar'
echo $x; // outputs 'foo'

作为一般规则,永远不要使用可变变量。它们导致完全不可维护且几乎不可能调试的代码。

于 2013-06-23T21:46:12.697 回答