我注意到这是php
中的一个常见错误,我试图搜索网络,我无法得到我的答案,我正在尝试创建一个simpe论坛,我收到这些错误
Notice: Undefined variable: topics in C:\xampp\htdocs\mysite\Students forum\view_category.php on line 83
Notice: Undefined variable: topic in C:\xampp\htdocs\mysite\Students forum\view_category.php on line 86
这是第83行的代码
$topics .= "<table width='100%' style='border-collapse: collapse;'>";
这是第86行的代码
$topic .= "<tr><td colspan='4'><hr /></td></tr>";
这是我的代码
if (mysql_num_rows($res2) > 0) {
// Appending table data to the $topics variable for output on the page
$topics .= "<table width='100%' style='border-collapse: collapse;'>";
$topics .= "<tr><td colspan='4'><a href='index.php'>Return To Forum Index</a>".$logged."<hr /></td></tr>";
$topics .= "<tr style='background-color: #dddddd;'><td>Topic Title</td><td width='65' align='center'>Last User</td><td width='65' align='center'>Replies</td><td width='65' align='center'>Views</td></tr>";
$topic .= "<tr><td colspan='4'><hr /></td></tr>";
// Fetching topic data from the database
while ($row = mysql_fetch_assoc($res2)) {
// Assign local variables from the database data
$tid = $row['id'];
$title = $row['topic_title'];
$views = $row['topic_views'];
$date = $row['topic_date'];
$creator = $row['topic_creator'];
// Check to see if the topic has every been replied to
if ($row['topic_last_user'] == "") { $last_user = "N/A"; } else { $last_user = getusername($row['topic_last_user']); }
// Append the actual topic data to the $topics variable
$topics .= "<tr><td><a href='view_topic.php?cid=".$cid."&tid=".$tid."'>".$title."</a><br /><span class='post_info'>Posted by: ".getusername($creator)." on ".convertdate($date)."</span></td><td align='center'>".$last_user."</td><td align='center'>".topic_replies($cid, $tid)."</td><td align='center'>".$views."</td></tr>";
$topics .= "<tr><td colspan='4'><hr /></td></tr>";
}
$topics .= "</table>";
// Displaying the $topics variable on the page
echo $topics;
}
答案 0 :(得分:4)
运算符.=
通常用于连接左右参数,但在这种情况下,您没有左参数。您必须像这样实例化变量:
$topics = "<table width='100%' style='border-collapse: collapse;'>";
$topic = "<tr><td colspan='4'><hr /></td></tr>";
if( ... ) {
while( ... ) {
$topics .= ...
$topic .= ...
}
}
答案 1 :(得分:1)
在使用$topics .="anything"
$topics ='';
$topics .= "whatever you want"; // must have been declared before
所以在这种情况下,它可能就像
if (mysql_num_rows($res2) > 0) {
$topics="<table width='100%' style='border-collapse: collapse;'>"
$topics .= "<tr><td colspan='4'><hr /></td></tr>";
// rest of your code
}
答案 2 :(得分:1)
此$topics .=
是$topics = $topics .
的简写,如果您在第一次使用变量时使用该变量,则该变量不会被视为“已定义”。
所以你至少应该这样做:
$topics = '';
$topic = '';
开始使用速记之前。
答案 3 :(得分:0)
$topic .= 'something';
与
相同$topic = $topic . 'something';
它实际上意味着:
如果$ line未在此行之前的任何位置使用,则第一步失败,因为$ topic变量尚不存在。
第一次在$ topic中添加内容时,请使用简单的
=
相反,您可以通过
加入更多内容.=