2016-11-17 171 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>