为什么这个if else条件不能正常工作

时间:2012-11-23 11:01:14

标签: php mysql if-statement

$的taskid = $这 - >隐私权();

       if($taskid){I returning something in one function and then by reference to this return,I am fetching data from another table in second function using if condition in such a way that if data(return) found in first table then execute else leave empty

但是我在第一张表中找到的数据然后每件事情都没问题,在第一张表中找不到数据,然后它显示为通知:未定义的变量:任务在....

我认为错误是在if else条件下。请帮助或建议任何替代方法。

Plz还注意到我正在处理pricacy表

第一个函数返回行

function privacy()
{
   $session=new session();

   $sql2=mysqli_query($this->db->connection,"SELECT * from privacy where viewerid='$session->userid'");
   while($row2=mysqli_fetch_array($sql2)){
     $task[]=$row2['task'];
   }
   return $task;
 }

函数2 ..如果找到了某些东西然后做其他什么都不做(但错误显示为未定义的变量)

 function showactivityo4apply()
 {
    $session=new session();
    $taskid=$this->privacy();
    if($taskid){
       foreach($taskid as $fvid){
         $sql=mysqli_query($this->db->connection,"SELECT * FROM activity where id='$fvid'");
         while($row=mysqli_fetch_array($sql)){
            $name_id=$row['sub_id'];  
            echo  $name;                   
          }
        }
     }      
     else{}
   }

4 个答案:

答案 0 :(得分:0)

if($taskid=$this->privacy())正在为$this->privacy()

分配$taskid的值

我认为你的意思是

if($taskid == $this->privacy())

答案 1 :(得分:0)

如果条件有==符号= =符号

if($taskid==$this->privacy()){
}
 else
{
}

=表示将值分配给另一个

==检查其他变量的值

答案 2 :(得分:0)

它显示通知因为php没有在关键字“任务”的数组中获取值使用isset()函数来检查数据是否可用 像这样使用

$task[] = (isset($row2['task'])?$row2['task']:'';

如果$ row2 ['task']中没有设置值,那么它将在$ task []数组中指定空值。

还有一项改变你必须做的事情

而不是if($ taskid)条件使用

if( count($taskid) > 0){
}

这样如果在数组中找不到记录,它就不会插入循环

答案 3 :(得分:0)

please change this line of your code like: 

  $sql2=mysqli_query($this->db->connection,"SELECT * from privacy where 
viewerid='$session->userid'");
=========================================
to
=============================
  $sql2=mysqli_query($this->db->connection,"SELECT * from privacy where 
viewerid='" . $session->userid . "'");

 =======================

结论:这里找不到$ session-> userid这就是为什么你没有得到结果。