if while语句循环while while循环/ php

时间:2011-12-18 01:11:20

标签: php mysql html

我现在承认,虽然我经历了2008年,但我已经完成了所有的帖子。我的问题是,if else语句只接收一行并且在两个while循环中调用所有其他的假使用表单时收到2。我试图看看是否在所有行中是否使用2个不同的数据库购买了一个项目。这是代码。

$id2 = $_SESSION['id'];
$naturesql = mysql_query("SELECT * FROM backgrounds WHERE type=2");
while($row = mysql_fetch_array($naturesql)) {
    $id = $row['id'];
    $name = $row['name'];
    $background = $row['background'];
    $pic = $row['image'];

    $check = mysql_query("SELECT * FROM store_items WHERE userid='$id2'");
    while($checkrow = mysql_fetch_array($check)) {
        $types = $checkrow['type2'];
    }

    if($id == $types) {
        $bought = 'This item has already been bought';
    } else {
        $bought = '<form>
                   </form>';
    // this form works fine
    }

    $display .= '<table width="100%"><tr><td><center><font size="+1">' . $name . '</font></center></td></tr><tr><td><center><img src="' . $pic . '" width="80px"></img></center></td></tr><tr><td>' . $bought . ' </td></tr></table>';
}

...

<?php echo $display ?>

出现了什么。

  

第一个结果   名称1   图1   表单显示在这里

     

第二个结果   名称2   图2   表格也显示在这里

     

第3个也是最后一个结果   姓名3   图3   此商品已经被购买

这是我在页面上看到的内容。如果我买了一件商品,这就是我得到的第一件商品。

  

第一个结果   名称1   图1   此商品已经被购买

     

第二个结果   名称2   图2   表格也显示在这里

     

第3个也是最后一个结果   姓名3   图3   此商品已经被购买

它弹出这个。虽然当我刷新回到第一个时,我显示只显示1个结果。任何想法,为什么不与他人合作。

如果你买了所有但不是

,那应该是这样的
  

第一个结果   名称1   图1   此商品已经被购买

     

第二个结果   名称2   图2   此商品已经被购买

     

第3个也是最后一个结果   姓名3   图3   此商品已经被购买

我唯一的另一个问题是有一个替代方法,所以保持循环并检查语句是否为真如if else语句。如果我不能用if else语句来做。

2 个答案:

答案 0 :(得分:2)

首先,您可以在1个查询中对此进行总结(它不在2个数据库中,但在2个表中,它似乎来自您的代码)

   SELECT b.*, s.type2 AS store_items_type2
     FROM backgrounds AS b
LEFT JOIN store_items AS s ON (s.type2 = b.id AND s.userid='$id2')
    WHERE b.type=2

为什么$id2 = $_SESSION['id'];?会话ID与用户ID不同。

您应该尝试在构建问题和代码方面投入更多精力,使其更易于理解。

答案 1 :(得分:1)

我不能在这里发布所有内容虽然这里应该给网站上的一些内容我做了什么让这个工作。令人惊讶的是,它就像一个魅力。注意每个人在一个mysql_query中放入2个表并没有帮助它只是让事情变得更糟。所以我不会为此提出建议。

我做的简单版本

$id = $_SESSION[id];

      $check = mysql_query("SELECT * FROM store_items WHERE userid='$id2'");
while($checkrow = mysql_fetch_array($check)){

$types = $checkrow['type2'];



}


    $naturesql = mysql_query("SELECT * FROM backgrounds WHERE type=2");
while($row = mysql_fetch_array($naturesql)) {
    $id = $row['id'];
    $name = $row['name'];
    $background = $row['background'];
    $pic = $row['image'];


$check = mysql_query("SELECT * FROM store_items WHERE userid='$id2' AND type=2 AND type2='$id' AND other='$pic'");
while($checkrow = mysql_fetch_array($check)) {
    $types = $checkrow['type2'];

}
if($id == $types) {
    $bought = 'This item has already been bought';
} else {
    $bought = '<form>
               </form>';
// this form works fine
}


$display .= '<table width="100%"><tr><td><center><font size="+1">' . $name . '</font></center></td></tr><tr><td><center><img src="' . $pic . '" width="80px"></img></center></td></tr><tr><td>' . $bought . ' </td></tr></table>';

}

就像我承诺的那样,如果我弄明白,我会发布。可能需要更长的时间然后我希望你去的地方。