从表中获取所有电子邮件地址

时间:2011-10-07 11:27:43

标签: php

下面的代码显示了一个电子邮件地址作为输出,但我想获得所有的列表 客户表的电子邮件地址(以逗号分隔)。我怎么能得到它?

<?php

    $SQLstring = "SELECT email FROM customers";
    $QueryResult = @mysqli_query($DBConnect, $SQLstring)
                   or die("<p>Unable to execute the query.</p>" .
                          "<p> Error code " . mysqli_errno($DBConnect) . ":" . mysqli_error                 ($DBConnect))."</p>";

    $NumRows = mysqli_num_rows($QueryResult);
    if ($NumRows == 0)
    {
        echo "<p>No email found.</p>";
    }

    else
    {
        for($i = 1; $i <= $NumRows; $i++)

        {
            $Row = mysqli_fetch_row($QueryResult);
            $email = stripslashes($Row[0]);
            echo $email;
        }
    }

?>

4 个答案:

答案 0 :(得分:1)

变化:

$email = stripslashes($Row[0]);

要:

$email = stripslashes($Row[$i]);

你应该设置

答案 1 :(得分:1)

PHP文档说mysqli_num_rows可能不会返回正确的行数,直到你检索完所有行,所以也许不是使用行计数,而是继续提取行直到你用完为止:

while ($Row = mysqli_fetch_row($QueryResult))
{
   $email = stripslashes($Row[0]);
   echo $email;
}

编辑:如果您想将电子邮件存储在数组中而不是仅仅回显它们,只需将其更改为:

while ($Row = mysqli_fetch_row($QueryResult))
{
   $email[] = stripslashes($Row[0]);
}

现在$ email将是一个包含所有电子邮件的数组。

答案 2 :(得分:1)

这是mysqli mysql您正在使用,所以事情的工作方式有点不同......

假设您已经使用$DBConnect = new msqli( ... );

之类的东西创建了mysqli连接

在操作结果之前存储结果可能更好;尝试类似的事情:

$success = $DBConnect->real_query($SQLstring);
if($success) {
  $result = $DBConnect->store_result();
  while($row = $result->fetch_array(MYSQLI_ASSOC)) {
    echo $row['email'] . "<br />\n"; //for debugging purposes
  }
}

$result->free();

答案 3 :(得分:0)

在while循环中使用mysql_fetch_assoc

$ NumRows = mysqli_num_rows($ QueryResult);

if ($NumRows == 0)
      {
     echo "<p>No email found.</p>";             
      }

   else 
      {
       while($row = mysql_fetch_assoc($QueryResult)){

                  $email = stripslashes($row['email']);
                          echo $email;
             }
      }