我遇到以下代码的问题 -
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循环,它就可以了。
答案 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()
声明应该有效。你发布了所有代码吗?