2017-05-09 68 views
0

我有「域」。這些域名擁有「電話號碼」。我正在嘗試將所有數字與相關域一起分組。試圖用一個共同的值對TR行進行分組

如何知道何時完成一個域並且另一個域現在在隊列中以知道何時結束一個TR並開始另一個域以便它們可以分組到他們自己的背景中顏色或桌子。

我的代碼嘗試:

$domainsqlquery = "SELECT DOMAIN FROM phone_numbers WHERE `RESELLER_ID` ='".$RID."'"; 
    if ($domainresult = mysqli_query($conn, $domainsqlquery)) { 
     if (mysqli_num_rows($domainresult) > 0) { 
      while ($domainrow = mysqli_fetch_assoc($domainresult)) { 
       echo '<tr'.(($c = !$c)?' class="odd"':' class="even"').">"; 
       $sqlquery = "SELECT * FROM phone_numbers WHERE `RESELLER_ID` ='".$RID."' AND `DOMAIN` ='".$domainrow['DOMAIN']."'"; 
       if ($result = mysqli_query($conn, $sqlquery)) { 
        if(mysqli_num_rows($result)>0){ 
         while ($row = mysqli_fetch_assoc($result)) { 
          echo "<td>"; 
          echo "<form action='' method='POST'>"; 
          echo "<input name='R_number' value='".$row['NUMBER']."' type='hidden'>"; 
          echo "<input name='N_ID' value='".$row['ID']."' type='hidden'>"; 
          echo $row['DOMAIN'] ." - ". $row['NUMBER'] ." - Cost: <input name='R_cost' value=".$row['COST']." style='width:50px'> <input type='submit' name='btn-drop' value='X'> &nbsp; <input type='submit' name='btn-update' value='UPDATE'> &nbsp;&nbsp; <a href=\"domain=".$row['DOMAIN']."&caldate=04\" target='_blank'>Open Report</a><br>"; 
          echo "</form>"; 
          echo "</td>"; 
         } 
        } 
       } 
       echo "</tr>"; 
      } 
     } 
+0

什麼是'($ c =!$ c)'?您不會顯示您定義'$ c'的位置,以及您具有賦值運算符'=',因此您將'$ c'設置爲'!$ c'。 – Sean

+0

我認爲你的tr應該在內部循環中。否則,你應該有相同的號碼。的每個域的電話號碼。此外,您不應該在您的循環中執行您的查詢 – manian

+0

您是否希望每個域都有一行,並且該域的所有電話號碼都作爲同一行中的列?或者是否希望爲每個電話號碼添加一行? – manian

回答

1

我會建議,而不是遍歷從數據庫的結果,並建立HTML,你倒是應該遍歷數據庫結果來創建一個字典(多維數組)的結果。我不認爲你甚至需要多次查詢表格。

的結果創建一個數組:

$results = []; 

使用單個查詢,你將擁有所有的電話號碼數組,每個行中的域信息。

然後,遍歷此數組並構建$results數組。

while ($row = mysqli_fetch_assoc($result)) { 
    if (!isset($results[$row['DOMAIN']])) { 
    $results[$row['DOMAIN']] = []; 
    } 

    $results[$row['DOMAIN']][] = $row; 
} 

有了這個,你將有以下形式的多維數組:

[ 
    'DOMAIN1': [ 
    [], // row1 
    [], // row2 
    ], 
    'DOMAIN2': [ 
    [], 
    [], 
    ], 
] 

現在,您可以輕鬆地遍歷這個數組,數組的第一級會給你什麼域行在。

+0

感謝您的支持。我終於能夠創建正確的foreach語句並根據需要進行操作。花了一些時間,但我明白了! –

相關問題