我有未定义的变量问题。问题是,我找到了一个教程,可以制作一个类型的微博客Twitter,有一些问题,我决定,但这让我很耐心。
错误消息:
注意:未定义的变量:第58行的caminho \ do \ arquivo \ functions.php中的额外值
功能
function show_users($user_id=0){ if ($user_id > 0){ $follow = array(); $fsql = "SELECT user_id FROM following WHERE follower_id='$user_id'"; $fresult = mysql_query($fsql); while($f = mysql_fetch_object($fresult)){ //array_push($follow, $f->user_id); $follow[] = $f->user_id; } if (count($follow)){ $id_string = implode(',', $follow); $extra = " AND id IN ($id_string)"; }else{ return array(); } } $users = array(); $sql = "SELECT id, username FROM users WHERE status='active' $extra ORDER BY username"; $result = mysql_query($sql); while ($data = mysql_fetch_object($result)){ $users[$data->id] = $data->username; } return $users; }
有问题的一行是:
$sql = "SELECT id, username FROM users WHERE status='active' $extra ORDER BY username";
有什么建议吗?
答案 0 :(得分:1)
有两种方法:
1. function show_users($user_id=0){
$extra='';
2. function show_users($user_id=0,$extra=''){
实际上,只有当你拥有$ user_id>时才宣布$ extra。 0但是对于当前情况,你必须让$ user_id等于或小于0,因此你的查询找不到$ extra。
我希望你有个主意。
答案 1 :(得分:0)
function show_users($user_id=0){
$extra = ''; //if no extra, you'll get just an empty string
//etc...
}
答案 2 :(得分:0)
function show_users(...) {
$extra = ''; // <--just add this line
blah blah blah blah blah
}
在您的代码中,如果两个if()
测试都成功,则仅定义$ extra。显然它们不是,所以最终你的sql字符串中有一个未定义的$ extra。
答案 3 :(得分:0)
function show_users($user_id=0,extra='') // use this
{
if ($user_id > 0){
$follow = array();
$fsql = "SELECT user_id FROM following WHERE follower_id='$user_id'";
$fresult = mysql_query($fsql);
while($f = mysql_fetch_object($fresult)){
//array_push($follow, $f->user_id);
$follow[] = $f->user_id;
}
if (count($follow)){
$id_string = implode(',', $follow);
$extra = " AND id IN ($id_string)";
}else{
return array();
}
}