2016-05-10 61 views
0

我想檢查下一個TWO行或ID非NULLPHP(codeigniter) - 如何檢查下兩行是否有價值?

因爲如果沒有成功兩個行或ID然後收入保持零。

 foreach ($data as $row) 
     { 
      if(($row->id + 2) != NULL) //I don't know what is the correct statement here 
      { 
      echo "<tr>"; 
      echo "<td>".$row->id."</td>"; 
      echo "<td>".$row->username."</td>"; 
      echo "<td>"."650.00"."</td>"; 
      echo "<td>".$row->remarks."</td>"; 
      echo "<tr>"; 
      } 
      else 
      { 
      echo "<tr>"; 
      echo "<td>".$row->id."</td>"; 
      echo "<td>".$row->username."</td>"; 
      echo "<td>".$row->income."</td>"; 
      echo "<td>".$row->remarks."</td>"; 
      echo "<tr>"; 
      }     
     } 

這是我想要實現的表格。

================================== 
|ID | Username | Income | Remarks| 
| 2 | user1 | 650.00 |  | 
| 3 | user2 | 650.00 |  | 
| 4 | user3 | 0.00 |  | 
| 5 | user4 | 0.00 |  | 
================================== 

如果我添加一個用戶名,然後下一個輸出將是這樣的:

================================== 
|ID | Username | Income | Remarks| 
| 2 | user1 | 650.00 |  | 
| 3 | user2 | 650.00 |  | 
| 4 | user3 | 650.00 |  | 
| 5 | user4 | 0.00 |  | 
| 6 | user5 | 0.00 |  | 
================================== 
+0

和問題是什麼?錯誤?分享一些更多信息 – TommySM

+0

當原始「IF」語句正在運行時,我所有行的輸出收入將爲650.00 –

+0

您想檢查user2之後是否仍有後續記錄?我對嗎? –

回答

1

你需要改變你的foreach得到索引。

foreach ($data as $index => $row) 

然後你就可以解決相關的所有行到當前的一行:

$row_two_ahead = $data[$index + 2]; 

您嘗試使用它之前,你應該然而,檢查是否該行存在,或者你會得到索引超出範圍例外:

if (isset($data[$index + 2])) { 
    } 
+0

謝謝我會試試這個.. –

+0

順便說一句,你知道什麼代碼來獲取數據庫的最後一個索引? $ this-> db - > ____? –

+0

我對codeigniter不熟悉。用純SQL你可以這樣做:SELECT MAX(id)FROM table; – TehSphinX

0

我解決了這個問題...

這是從我的控制器代碼:

public function addUsername() 
{ 
    $data['id'] = NULL; 
    $data['username'] = $this->input->post('username'); 
    $data['reward'] = 0.00; 
    $data['remarks'] = ' '; 

    $this->Matrix_model->addUsername($data); 
    $last = $this->Matrix_model->getLast(); 
    $index = $last - 2; //I minus the last index with two 
    $this->Matrix_model->updateIncome($index); //and updated the income of that index 
    redirect('http://localhost/matrix/index.php/matrix'); 
} 

,這是從我的模型代碼:

public function addUsername($data) 
    { 
    $this->db->insert("income", $data); 
    } 

public function getLast() 
    { 
    return $this->db->insert_id(); //this is the method to access the last id inserted 
    } 

public function updateIncome($id) 
    { 
    $this->db->set("reward", 650); 
    $this->db->where("id", $id); 
    $this->db->update("income"); 
    } 

謝謝你,我很抱歉,如果其他的程序員不明白我的問題

相關問題