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