2013-06-20 28 views
-1

下面的函數不斷加載頁面,我找不到問題。PHP一直在發送數據

的值是:

$per_page = 10; 
$soort = 2; 
$query = "SELECT id, name, email, status FROM users WHERE company_id = " . $id . " AND status != 3"; 
$array = array("#", "Naam", "E-mail", "Status", "Tools"); 

$id是上的URL $_GET

代碼:

public function table($per_page, $soort, $query, $array) 
{ 
    // elke soort table moet hier een table if() hebben. 
    // standaart value's 
    $i = 0; 
    $countx = count($array); 
    $x = 1; 

    // checkt of de td nummer even of oneven is zodat het een andere style krijgt. 
    function get() 
    { 
     // de naam van de $_GET 
     $prefix = "p"; 
     return $prefix; 
    } 

    function evencheck($number) 
    { 
     if (is_int($number/2)) 
     { 
      return'col1'; 
     } 
     else 
     { 
      return'col2'; 
     } 
    } 

    if ($result = $this->db->query($query)) 
    { 
     if ($result->num_rows != 0) 
     { 
      $total_results = $result->num_rows; 
      // Kijken hoeveel pagina's er moeten komen voor de pagination. 
      $total_pages = ceil($total_results/$per_page); 

      if (isset($_GET[get()]) && is_numeric($_GET[get()])) 
      { 
       $show_page = $_GET[get()]; 

       // make sure the $show_page value is valid 
       if ($show_page > 0 && $show_page <= $total_pages) 
       { 
        $start = ($show_page - 1) * $per_page; 
        $end = $start + $per_page; 
       } 
       else 
       { 
        // error - show first set of results 
        $start = 0; 
        $end = $per_page; 
       } 
      } 
      else 
      { 
       // if page isn't set, show first set of results 
       $start = 0; 
       $end = $per_page; 
      } 

      // display pagination 
      // display data in table 
      echo "<table>"; 
      echo "<tr class='headtr'>"; 
      // maakt de head van de table via een array die is mee gegeven aan de function. 
      foreach ($array as $headtable) 
      { 
       echo "<td class='headtd'><b>" . $headtable . "<b></td>"; 
      } 
      echo "</tr>"; 

      echo "<tr>"; 


      // Ik zie zelf nog geen andere oplossing dan dit. 
      // Vooral omdat de tables zo veel van elkaar verschillen. 
      $result->data_seek($i); 
      $row = $result->fetch_row(); 
      $count = count($row); 
      if ($soort == 1) 
      { 
       //logs 
       // stemt de while af met de array input, dus -1 omdat de array begint met 0. 
       $x = $count - 1; 
       while ($i <= $x) 
       { 
        echo "<td class='" . evencheck($i) . "'>" . $row[$i] . "</td>"; 
        $i++; 
       } 
      } 
      if ($soort == 2) 
      { 
       //users/bedrijven (ADMIN module) 
       $rLog = $this->rights('admin/log'); 
       $rEdit = $this->rights('admin/bedrijven/gebruikers/bewerken'); 
       $rLogin = $this->rights('admin/bedrijven/gebruikers/inloggen'); 
       $rDelete = $this->rights('admin/bedrijven/gebruikers/verwijderen'); 

       // Een extra TD voor de tools achter bij de table. 
       $x = $count; 

       while ($i <= $x) 
       { 
        if ($i == $total_results) 
        { 
         break; 
        } 
        $result->data_seek($i); 
        $row = $result->fetch_row(); 
        echo "<tr>"; 




        echo "<td class='" . evencheck($i) . "'>" . $row[0] . "</td>"; 

        echo "<td class='" . evencheck($i) . "'>" . $row[1] . "</td>"; 
        echo "<td class='" . evencheck($i) . "'>" . $row[2] . "</td>"; 
        echo "<td class='" . evencheck($i) . "'>" . ($row[3] == 1 ? 'Actief' : 'Geblokkeerd') . "</td>"; 
        //tools td. 
        echo "<td id='tools' class='" . evencheck($i) . "'>" . ($rLog ? '<a href="/admin/log/' . $row[0] . '">' . LOG . '</a>' : '') . ' 
        ' . ($rEdit ? '<a href="/admin/bedrijven/gebruikers/bewerken/' . $row[0] . '">' . EDIT . '</a>' : '') . ' 
        ' . ($rLogin ? '<a href="javascript:;" onClick="sure(\'Wilt u een verzoek versturen naar ' . htmlentities($row[1]) . ' voor ondersteuning?\', \'/admin/bedrijven/gebruikers/inloggen/' . $row[0] . '\');">' . LOGIN . '</a>' : '') . ' 
        ' . ($rDelete ? '<a href="javascript:;" onClick="sure(\'Weet u zeker dat u de gebruiker ' . htmlentities($row[1]) . ' wilt verwijderen?\', \'/admin/bedrijven/gebruikers/verwijderen/' . $row[0] . '\');">' . DEL . '</a>' : '') 
        . "</td>"; 
        echo "</tr>"; 
       } 
       //paginstion er aan plakken 
       $this->pagination($per_page, $total_results, $total_pages, $countx); 
      } 
     } 
     else 
     { 
      echo "No results to display!"; 
     } 
    } 
    else 
    { 
     echo "Er is iets fout gegaan!<br>" . $db->error; 
    } 
} 

控制檯通過螢火蟲:

The console via Firebug http://img341.imageshack.us/img341/9638/42z2.png

我已經建立了分頁功能是沒有問題的。

+0

已經定義的函數裏面的這個功能可能是一個問題。不是一個好的編程練習。 –

+0

如果'$ _GET ['id']'是'&=); DROP TABLE users; - '?我知道這不是你的問題,但請考慮SQL注入攻擊,特別是在$ GET。 – Sablefoste

+0

建議:不要在您的代碼中使用那種漂亮的荷蘭語,請使用下面的代碼: –

回答

4

你有一個無限循環while

while ($i <= $x) { ... } 

我想你忘記了while循環結束前添加$i++,像這樣:

while ($i <= $x) { 
    // Your code here 

    $i++; 
} 
+0

哇......我沒有看到那個。謝謝。 –