循环时帮助PHP

时间:2011-01-22 18:15:09

标签: php sql loops while-loop

我遇到以下代码的问题 -

mysqli_select_db($connect,"publishers");
//using for the display of the offer box
$sql = "SELECT * FROM revbut WHERE onpublisher='$u'"; 

$g = mysqli_query($connect,$sql) or die(mysqli_error($connect));




mysqli_select_db($connect,"users");
//using for the display of the offer box
$db = "SELECT * FROM button WHERE sessionusername='$u'"; 

$s = mysqli_query($connect,$db) or die(mysqli_error($connect));

$user = mysqli_fetch_assoc($s);
while($geez = mysqli_fetch_assoc($g))
{
if($geez['onuser']) {
    $globalname = $geez['sessionusername'];
    include('js.php');
}

else if($user['sessionusername']){
    include('js2.php');
}

else {
    echo "Nothing in here.";
}
}

如果我删除了while循环,它就可以了。

2 个答案:

答案 0 :(得分:1)

如果您只有一条记录,则根本不输入while循环,并且不执行代码,即使是第一条记录也没有。这意味着,即使您设置了js2.php,也不会包含$user['sessionusername'],只要您没有第二条记录。

我不确定这是不是你的问题,因为我不知道你究竟想要达到什么目标,但它让我感到可能存在缺陷。

[编辑]

if ($user = mysqli_fetch_assoc($s))
{
  if($user['onuser']) 
  {
    $globalname = $user['sessionusername'];
    include('js.php');
  }
  else /* not needed: if($user['sessionusername']) */
  {
    include('js2.php');
  }
}
else {
  echo "Nothing in here.";
}

[EDIT2]

if ($user = mysqli_fetch_assoc($s))
{
    while ($user !== false)
    {
        if($user['onuser']) 
        {
            $globalname = $user['sessionusername'];
            include('js.php');
        }
        else /* still not needed: if($user['sessionusername']) */
        {
            include('js2.php');
        }
        $user = mysqli_fetch_assoc($s);
    }
}
else
{
    echo 'Nothing to see here';
}

答案 1 :(得分:0)

评论说明 -

if(mysqli_num_rows($g) > 1)
    {
        while($geez = mysqli_fetch_assoc($g))
        {
            if($geez['onuser']) {
                $globalname = $geez['sessionusername'];
                include('js.php');
            }

            else if($user['sessionusername']){
                include('js2.php');
            }

            else {
                echo "Nothing in here.";
            }
        }
        } else {
            if($geez['onuser']) {
                $globalname = $geez['sessionusername'];
                include('js.php');
            }

            else if($user['sessionusername']){
                include('js2.php');
            }

            else {
                echo "Nothing in here.";
            }
    }

当然,即使对我来说,这似乎是一种糟糕的方式。您的while()声明应该有效。你发布了所有代码吗?