【问题标题】:How to fix syntax error, unexpected T_IF error in php? [closed]如何修复语法错误,php中的意外T_IF错误? [关闭]
【发布时间】:2012-06-02 06:36:07
【问题描述】:

解析错误:语法错误,第 27 行 view.php 中出现意外的 T_IF

我真的没有在我的代码中看到任何问题,为什么会发生这种情况,请帮助。我是 PHP 初学者

我的第 21 行在哪里 >> if(isset($_GET['page']) && is_numeric($_GET['page']))

if ($result = $mysqli->query("SELECT * FROM players ORDER BY id"))
{
    if ($result->num_rows > 0)
    {
        $total_result = $result->num_rows;
        $total_pages = ceil($total_result / $per_page)

        if(isset($_GET['page']) && is_numeric($_GET['page']))
        {
            $show_page = $_GET['page'];

            if ($show_page > 0 && $show_page <= $total_pages)
            {
                $start = ($show_page - 1) * $per_page;
                $end = $start + $per_page;
            }
            else
            {
                $start = 0;
                $end = $per_page;
            }               

        }
        else
        {
            $start = 0;
            $end = $per_page;
        }


        //display paginations
        echo "<p> View pages: ";
        for ($i=1; $i < $total_pages; $i++)
        { 
            if (isset($_GET['page']) && $_GET['page'] == $i)
            {
                echo  $i . " ";
            }
            else
            {
                echo "<a href='view-pag.php?$i'>" . $i . "</a> | ";
            }

        }
        echo "</p>";

    }
    else
    {
        echo "No result to display.";
    }

}
else
{
    echo "Error: " . $mysqli->error;
}

【问题讨论】:

  • 检查该行之前的分号。
  • 大声笑,为什么这个问题closed as too localized,这根本没有意义。
  • 为什么被关闭为“过于本地化”?无论如何都不是这样!当 PHP 初学者忘记上一行的 ; 时,遇到此错误是典型的陷阱。它不是特定于此代码!请考虑重新打开它,或出于其他原因关闭它,但不是这个!
  • 这是个好问题。不是“过于本地化”帮助我解决了这个错误,而是另一个原因。
  • “这个问题不太可能帮助任何未来的访问者,这完全是不真实的;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,而不是一般情况下适用于互联网的全球观众。”

标签: php syntax


【解决方案1】:

PHP 解析器错误需要一些时间来适应;如果它在 X 行抱怨意外的“某事”,请先查看 X-1 行。在这种情况下,它不会告诉您忘记了上一行末尾的分号,而是会抱怨接下来出现的if

你会习惯的:)

【讨论】:

  • 谢谢,看到我的愚蠢错误。我错过了第 20 行上的分号。该死的我多么愚蠢:/
  • @STEEL 不要为此自责 ;-) 理解 php 错误有时需要一些想象力
  • 我希望在 PHP 中表现出色。谢谢
  • 谢谢它也帮助了我...
  • 谢谢...我的line x - 1eles if (gettype($res) == 'boolean') !!!
【解决方案2】:

在前一行加分号:

$total_pages = ceil($total_result / $per_page);

【讨论】:

    【解决方案3】:

    问题来了

      $total_result = $result->num_rows;
    

    试试这个

    <?php
    if ($result = $mysqli->query("SELECT * FROM players ORDER BY id"))
    {
        if ($result->num_rows > 0)
        {
            $total_result = $result->num_rows;
            $total_pages = ceil($total_result / $per_page);
    
            if(isset($_GET['page']) && is_numeric($_GET['page']))
            {
                $show_page = $_GET['page'];
    
                if ($show_page > 0 && $show_page <= $total_pages)
                {
                    $start = ($show_page - 1) * $per_page;
                    $end = $start + $per_page;
                }
                else
                {
                    $start = 0;
                    $end = $per_page;
                }               
    
            }
            else
            {
                $start = 0;
                $end = $per_page;
            }
    
    
            //display paginations
            echo "<p> View pages: ";
            for ($i=1; $i < $total_pages; $i++)
            { 
                if (isset($_GET['page']) && $_GET['page'] == $i)
                {
                    echo  $i . " ";
                }
                else
                {
                    echo "<a href='view-pag.php?$i'>" . $i . "</a> | ";
                }
    
            }
            echo "</p>";
    
        }
        else
        {
            echo "No result to display.";
        }
    
    }
    else
    {
        echo "Error: " . $mysqli->error;
    }
    
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2012-10-30
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      相关资源
      最近更新 更多