Php 为foreach()注释系统提供的参数无效

Php 为foreach()注释系统提供的参数无效,php,Php,首先,我的英语不是很好,所以尽量解释我的问题。所以我对foreach()提供的无效参数有一个问题,我不知道出了什么问题。我想创建一个评论系统,在那里我可以放置注册用户。如果您有任何想法或工作评论系统,我可以使用我的数据库与用户,我将不胜感激 这是我的密码 <?php function get_comments($file_id) { require 'polaczenie.php'; $result = "SELECT * FROM `comments` WHERE `f

首先,我的英语不是很好,所以尽量解释我的问题。所以我对foreach()提供的无效参数有一个问题,我不知道出了什么问题。我想创建一个评论系统,在那里我可以放置注册用户。如果您有任何想法或工作评论系统,我可以使用我的数据库与用户,我将不胜感激

这是我的密码

<?php
function get_comments($file_id) {
    require 'polaczenie.php'; 
    $result = "SELECT * FROM `comments` WHERE `file_id`='$file_id' AND `is_child`=FALSE ORDER BY `date` DESC";
    $row_cnt =mysql_query($result);
    echo '<h1>Comments ('.$row_cnt.')</h1>';
    echo '<div class="comment">';
        new_comment();
    echo '</div>';
    foreach($result as $item) {
        $date = new dateTime($item['date']);
        $date = date_format($date, 'M j, Y | H:i:s');
        $auth = $item['author'];
        $par_code = $item['com_code'];
        $chi_result ="SELECT * FROM `comments` WHERE `par_code`='$par_code' AND `is_child`=TRUE";
        $chi_cnt = mysql_query($chi_result);
        echo '<div class="comment" name="'.$item['com_code'].'">'
                .'<span class="author">'.$auth.'</span><br />'
                .$item['comment'].'<br />'
                .'<span class="date">Posted: '.$date.'</span><br />';
                if($chi_cnt == 0) {
                    echo '<span class="replies">No replies</span>'
                        .'<span class="replies">&emsp;Reply</span>';
                } else {
                    echo '<span class="replies">[+] '.$chi_cnt.' replies</span>'
                        .'<span class="replies"&emsp;Reply</span>';
                        add_comment($item['author'], $item['com_code']);
                    echo '<div name="children" id="children">';
                    foreach($chi_result as $com) {
                        $chi_date = new dateTime($com['date']);
                        $chi_date = date_format($chi_date, 'M j, Y | H:i:s');
                        echo '<div class="child" name="'.$com['com_code'].'">'
                                .'<span class="author">'.$com['author'].'</span><br />'
                                .$com['comment'].'<br />'
                                .'<span class="date">Posted: '.$chi_date.'</span><br />'
                            .'</div>';
                    }
                    echo '</div>';
                }
            echo '</div>';
    }
    mysql_close($conn);
}
function add_comment($reply, $code) {
    echo '<form action="reply.php" method="post" enctpye="" name="new_comment">'
            .'<input type="hidden" name="par_code" value="'.$code.'" />'
            .'<textarea class="text_cmt" name="text_cmt" placeholder="Reply to '.$reply.'"></textarea><br />'
            .'<input type="submit" value="Reply" />'
        .'</form>';
}
function new_comment() {
    echo '<form action="new.php" method="post" enctpye="" name="new_comment">'
            .'<textarea class="text_cmt" name="text_cmt" placeholder="Post a new comment"></textarea><br />'
            .'<input type="submit" value="Post" />'
        .'</form>';
}
function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $characterLength = strlen($characters);
    $randomString = '';
    for($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $characterLength - 1)];
    }
    return $randomString;
}
function checkString($com_code) {
    include 'database.php';
    $rand = generateRandomString();
    $result ="SELECT * FROM `comments` WHERE `com_code`='$com_code'";
    $row_cnt = mysql_query($result);
    if($row_cnt != 0) {
        return $rand;
    } else {
        checkString($rand);
    }
}
大概吧

foreach($result as $item) {
应该是

foreach($row_cnt as $item) {

您正在将查询字符串传递给foreach函数。

这里,$result只是一个包含查询的变量。foreach循环需要一个它可以遍历的数组或对象。您应该改用while循环

示例场景:

$result = "SELECT * FROM `comments` WHERE `file_id`='$file_id' AND `is_child`=FALSE ORDER BY `date` DESC"; 

$comments = mysql_query($result);
while($comment = mysql_fetch_array($comments))
{
    //Do whatever you want with your each comment
}
我希望这会有所帮助:)
或者您可以按照此处的步骤操作

完整的错误消息是什么,包括行号和详细信息?$result是您的SQL查询,而不是实际的查询结果,顺便说一句,不能使用foreach迭代。