0

我正在尝试根据其 ID 从数据库中列出一条记录。我有一个脚本列出了数据库中的所有记录并在 html 表中显示记录。在表中,有一行“活动”是单击时仅显示一行记录的链接。想法是仅列出具有电子邮件的行,否则显示一条消息,说明没有可用的电子邮件

这是脚本

//database connection details
$id =$_REQUEST['id'];
$email =$_REQUEST['email'];

if($email != "")
{
$query = mysql_query("SELECT * FROM $tbl_name WHERE id='$id'");
echo "<table border = 1 cellpadding = 5> <tr>   <th> Name </th> <th> Address </th> <th> City </th> <th> State </th> <th> Postal Code </th> <th> Voice </th> <th> Email </th> <th> Status </th> </tr>"; 

while($row = mysql_fetch_array($query)) 
{
  echo "<tr>";
  echo "<td> $row[1] </td>";
  echo "<td> $row[2] </td>";
  echo "<td> $row[3] </td>";
  echo "<td> $row[4] </td>";
  echo "<td> $row[5] </td>";
  echo "<td> $row[6] </td>";
  echo "<td> $row[7] </td>";
  echo "<td> $row[8] </td>";
  echo "</tr>";
}
echo "</table>";
}
else
    echo 'That record does not have an Email';

但我在运行脚本时收到错误“未定义的索引:电子邮件”..请帮助

4

4 回答 4

1

Try to use mysql_fetch_object: example:

while($row = mysql_fetch_object($query))
{
    echo $row->email;
}

in your code , for example:

if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
    $email = $_REQUEST['email'];
else
    echo "enter email address";

after your query:

while($row = mysql_fetch_object($query))
{
   if(empty($row->email))
   {
       echo "email is empty!"
       continue;
   }
}
于 2013-11-05T09:58:27.177 回答
0

我错了还是我正确地看到了您的 else { echo '该记录没有电子邮件'; } 应用于 if 语句说 if ($email != '')?

-- 更新:您应该使用 while() 移动 else 语句并使其成为 IF 语句,这样您就知道哪些记录有,哪些没有有效/空的邮件地址。

如果是这样,那一定是因为没有指定 $_REQUEST。出于多种原因,另请参阅$_REQUEST、$_GET 和 $_POST 中哪一个最快?了解为什么或为什么不使用 $_REQUEST 而是使用 $_GET/$_POST 代替。

于 2013-11-05T10:04:06.233 回答
0
i think it will be helpfull, try this 

$sqlquery = mysql_query("SELECT * FROM $tbl_name");
echo "<table border = 1 cellpadding = 5> <tr>   <th> Name </th> <th> Address </th> <th>         City </th> <th> State </th> <th> Postal Code </th> <th> Voice </th> <th> Email </th> <th> Status </th> </tr>"; 
foreach($sqlquery as $query) {
    if (!empty($query->email)) {
      echo "<tr>";
      echo "<td>'.$query-><corresponding_column_name>.'</td>";
      echo "<td>'.$query-><corresponding_column_name>.'</td>";
      echo "<td>'.$query-><corresponding_column_name>.'</td>";
      echo "<td>'.$query-><corresponding_column_name>.'</td>";
      .....
      ...
     echo "</tr>";`enter code here`
    } else {
    echo "<tr>'No email is available</tr>";
      }
}
echo "</table>";
于 2013-11-05T10:54:30.693 回答
0

谢谢大家的回答

相反,我选择了另一种选择……实际上是显而易见且最简单的选择……

我在我的 SELECT 语句中包含了以下内容

$sql = "SELECT * FROM $tbl_name WHERE email<>''";

奇迹般有效!

于 2013-11-05T13:26:02.063 回答