2016-11-17 166 views
0

Ive得到了一個非常基本的名爲 '客戶' 四列的表:
ID(主自動遞增)
BUSINESSNAME
CONTACTNAME
contactEmailmysqli_fetch_array使用foreach循環

我把它叫做:

$result = mysqli_query($con, "SELECT * FROM customers"); 

並且正在使用mysqli_fetch_array在頁面上用foreach循環顯示它:

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
{  
    echo "<tr>"; 
    foreach ($row as $value) { 
     echo "<td>" . $value . "</td>"; 
    } 
    echo "<td><a href='updateform.php?id=" . $row['id'] . "'>Edit</a></td>"; 
    echo "</tr>"; 
} 

,讓你像一個數組:

Array ([id] => 1 [businessName] => Microsoft [contactName] => Bill Gates [contactEmail] => [email protected]) Array ([id] => 2 [businessName] => Amazon [contactName] => Jeff Bezos [contactEmail] => [email protected]) 

是否有可能不同的基於其列(技術上現在數組中的位置),他們中顯示的結果嗎?我想做一個

a href="mailto:[email protected]" 

當它到達contactEmail鏈接。
如果我只想顯示一個鍵或值而不是使用foreach,該怎麼辦?
這似乎並不可能調用

$row['contactEmail'] 

在foreach循環 這讓我困惑,因爲低於我能夠創建一個鏈接到

$row['id'] 

如果任何人有任何想法如何做到這一點,或者如果有更好的方式來顯示這些信息,我會接受建議,因爲我不擅長編程,特別是PHP。

+1

'$ row ['contactEmail']'應該可以正常工作。你遇到了什麼錯誤? –

+0

檢查您是否正在寫** contactEmail **,因爲它存儲在數據庫中。根據文檔大小寫敏感。 –

+0

你也可以嘗試'mysqli_fetch_assoc()'[鏈接](http://php.net/manual/en/mysqli-result.fetch-assoc.php)這將肯定會讓你一個數組,你可以訪問元素。 –

回答

2

是的!你可以添加這樣的:

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
{  
    echo "<tr>"; 
    foreach ($row as $key => $value) { 
     if($key == "contactEmail"){ 
      $mailUrl = "mailto:".$value; 
      echo "<td><a href=".$mailUrl.">".$value."</a>"; 
     } 
     else{ 
      echo "<td>" . $value . "</td>"; 
     } 
    } 
    echo "<td><a href='updateform.php?id=" . $row['id'] . "'>Edit</a></td>"; 
    echo "</tr>"; 
} 
1

是的,你可以能夠直接mysqli_fetch_array使用foreach循環檢索數據。像下面這樣:

<?php 
    $result = mysqli_query($con, "SELECT * FROM customers"); 
?> 
<table> 
    <tr> 
     <td>Business Name</td> 
     <td>Contact Name</td> 
     <td>#</td> 
    </tr> 
    <?php 
    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    {  
     echo "<tr>"; 
      echo "<td>".$row['businessName']."</td>";  
      foreach ($row as $key => $value) { 
       $newValue = $key == "contactEmail" ? '<a href="mailto:'.$mailUrl.'">'.$value.'</a>' : $value; 
       echo "<td>" . $newValue . "</td>";   
      } 
      echo "<td><a href='updateform.php?id=" . $row['id'] . "'>Edit</a></td>"; 
     echo "</tr>"; 
    } 
    ?> 
</table>