2012-07-16 105 views
1

我需要隱藏管理功能中的某些帳戶。通過一行電子郵件循環

目前,eash帳戶是爲管理員列出的。但是,我希望所有以gmail.com結尾的電子郵件都可以隱藏,直到我要求將它們與其他人一起列出。

這是我的電子郵件代碼:

if(empty($resLine['ord_conEmail'])){ 
     $resLine['ord_conEmail'] = "Account {$resLine['ord_account']}"; 
    } 

和代碼較大的是:

$buffer .= " 
     <div id=\"catDetail\"> 
      <h1>Orders Listing$pnStr</h1> 
      <div> 
       <table class=\"roundTableFormat\"> 
        <thead> 
         <tr> 
          <th>Order ID</th> 
          <th>Order Date</th> 
          <th>Cust. Email Address</th> 
          <th>Order Total</th> 
          <th>Actions</th> 
         </tr> 
        </thead> 
        <tbody>"; 

forEach($res as $resLine){ 
    if($resLine['ord_date'] > mktime() - 86400){ 
     //24 hours 
     $resLine['ord_date'] = date("D jS - g:iA", $resLine['ord_date']); 
    }else if($resLine['ord_date'] > mktime() - 259200){ 
     //OLD:display Day of Week for last five days (60*60*24*5=432000 sec 
     //New: 3 days = 259200 
     $resLine['ord_date'] = date("D jS - g:iA", $resLine['ord_date']); 
    }else{ 
     //display full date 
     $resLine['ord_date'] = date("M j, Y", $resLine['ord_date']); 
    } 

    $resLine['ord_total'] = "$".number_format($resLine['ord_total'], 2); 

    if(empty($resLine['ord_conEmail'])){ 
     $resLine['ord_conEmail'] = "Account {$resLine['ord_account']}"; 
    } 

    $buffer .= " 
      <tr> 
       <td class=\"ds br\">{$resLine['ord_id']}</td> 
       <td class=\"al ls br\">{$resLine['ord_date']}</td> 
       <td class=\"al ls\">{$resLine['ord_conEmail']}</td> 
       <td class=\"ar bl br\">{$resLine['ord_total']}</td> 
       <td class=\"ds \"> 
        <a href=\"?action=orders&ordview={$resLine['ord_id']}\">View</a> 
        <a href=\"?action=orders&ordprint={$resLine['ord_id']}\">Print</a> 
       </td> 
      </tr>"; 
} 

如何創建一個循環來隱藏顯示了一定的電子郵件?

+0

這是非常基本的東西,你檢查你的'foreach'循環的開始地址,如果它不是你想要的,不要繼續。你究竟堅持着什麼? – jeroen 2012-07-16 16:34:12

+0

我被困在整個過程中。我是一名網頁設計師,而不是開發人員,但被要求在這方面提供幫助。所以,我不知道如何編寫代碼。 – FGatlin 2012-07-16 16:36:13

回答

0

您可以添加一個散列表(關聯數組),您可以在其中存儲要忽略的電子郵件域。

$domains = array(
    'gmail.com' => true 
); 

您可以添加一個條件語句來檢查是否設置了域。它將插入緩衝要打印的html的行之前。

$email = $resLine['ord_conEmail']; 

// Assumes e-mail address is correctly formatted: [email protected] 
$result = explode('@', $email); 
$domain = $result[1]; 

if (isset($domains[$domain]) && $domains[$domain]) { 
    continue; // Skip row 
} 
+0

我將繼續玩這個,但我得到一個錯誤在: 未定義的變量:電子郵件 未定義的抵消:1 非常感謝您的幫助! – FGatlin 2012-07-16 16:59:06

+0

@ user1324759對不起。 $電子郵件應該是您檢查的電子郵件地址。我添加了一行使用行中的值來分配它。 – 2012-07-16 17:02:38

+0

isset($ domains [$ domain])&& $ domains [$ domain]與!empty($ domains [$ domain])相同(以及更多可讀的imho)。否則好的解決方案 – MatsLindh 2012-07-16 17:22:16