PHP错误使它做其他事情

时间:2013-08-03 04:11:18

标签: php mysqli

如果没有更多的行要显示但是没有工作可以让任何人指出我正确的方向来解决这个问题,我试图让这个代码做其他事情。

if($mymethod == "LOADGEMINVENTORY")
{

 $result = mysqli_query($con,"SELECT * FROM gemshop_table LIMIT $startrow, 6")or
die(mysql_error());//Pulles six items at a time to display.

if(!mysql_error()){ echo ("DISPLAYING6OFINVENTORY^");         
   while($row = mysqli_fetch_array($result))
     { 
       echo $row['id'];echo (",");echo $row['image'];echo ("^"); 
     }
     }else{echo ("NOINVENTORY");}

}

2 个答案:

答案 0 :(得分:1)

您正在将mysqlimysql混合。您应该在代码中使用其中一个。

如果您使用的是mysqli,则可以执行以下操作以获取行数:

$row_count = $result->num_rows;

if( $row_count == 0 ) {
echo "NOINVENTORY";
}

答案 1 :(得分:-1)

PHP中没有while / else条件(或者我知道的大多数编程语言)。

while()将自动循环数据直到结束。因此,在您的情况下,如果您想要在之后显示所有数据,那么您只需在while()循环之后显示它。

while($row = mysqli_fetch_array($result))
{ 
   echo $row['id'];echo (",");echo $row['image'];echo ("^"); 
}

echo "Show anything you want after the data above.";

但是,在我看来,你想要在有数据时显示记录,而在没有数据时则显示NOINVENTORY。为此,请使用if()

num_rows语句
if(!mysql_error())
{
     if (0 == mysqli_num_rows ($result))
     {
        echo "NOINVENTORY";
     }
     else
     {
        while($row = mysqli_fetch_array($result))
        { 
           echo $row['id'];echo (",");echo $row['image'];echo ("^"); 
        }
     }
}