伯爵和Foreach?

时间:2016-08-12 08:55:22

标签: php

我正在尝试计算我从数据库中选择的行数,如果行数大于1,则编写一个Foreach循环。我一直收到意外的')'错误。这是为什么?

<?php
    if(isset($_SESSION['login_user'])) {
        $login_session = $_SESSION['login_user'];
        echo '<h1>Welcome '. $login_session .'</h1>';
    }

    echo '<table>';
    $sql_query = "SELECT * FROM Courses";
    $result = mysqli_query($dbconfig, $sql_query);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    if($count > 1) {
        foreach($result as $row)
            echo '<tr>'. $row['Title'] .'</tr>';
        }
    }
    echo '</table>';        
?>

确切的错误是:

[12-Aug-2016 09:54:29 Europe/London] PHP Parse error:  syntax error, unexpected '}' in /home/etd/public_html/etd/single/courses.php on line 33

3 个答案:

答案 0 :(得分:0)

这是意外的'}'错误(花括号)。

你的foreach循环缺少开口大括号。它应该是这样的:

<?php
    if(isset($_SESSION['login_user'])) {
        $login_session = $_SESSION['login_user'];
        echo '<h1>Welcome '. $login_session .'</h1>';
    }

    echo '<table>';
    $sql_query = "SELECT * FROM Courses";
    $result = mysqli_query($dbconfig, $sql_query);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    if($count > 1) {
        foreach($result as $row) {  // this is where the curly bracket opening is missing
            echo '<tr>'. $row['Title'] .'</tr>';
        }
    }
    echo '</table>';        
?>

没有开口就有一个额外的大括号,正如翻译告诉你的那样 - 这是出乎意料的。

答案 1 :(得分:0)

你在foreach

上缺少一个开头的花括号({

您的代码:

if($count > 1) {
    foreach($result as $row)
        echo '<tr>'. $row['Title'] .'</tr>';
    }
}

应该是:

if($count > 1) {
    foreach($result as $row) {
        echo '<tr>'. $row['Title'] .'</tr>';
    }
}

这是一个意外的}的原因,因为它没有一个开口括号可以匹配

答案 2 :(得分:0)

缺少括号foreachloop

<?php
    if(isset($_SESSION['login_user'])) {
        $login_session = $_SESSION['login_user'];
        echo '<h1>Welcome '. $login_session .'</h1>';
    }

    echo '<table>';
    $sql_query = "SELECT * FROM Courses";
    $result = mysqli_query($dbconfig, $sql_query);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    if($count > 1) {
        foreach($result as $row) {
            echo '<tr>'. $row['Title'] .'</tr>';
        }
    }
    echo '</table>';        
?>