我正在编写一个脚本,允许访问者输入他们的电子邮件地址,以便在其他用户上传照片时收到通知。出于测试目的,我使用此代码只查询我的“email”表,当上传新照片时,它工作得非常好:
$data = mysql_query("SELECT email
FROM email");
if(! $data )
{
die('Could not get data: ' . mysql_error());
}
if($info = mysql_fetch_array($data, MYSQL_ASSOC))
$email=$info['email'];
{
mail($email, 'Test Email', $message);
但是,必要的查询将涉及两个表(将照片上载期间标记的信息与希望接收电子邮件的用户提供的信息进行比较)。但是,当我使用以下查询时,不会发送电子邮件。
$data = mysql_query("SELECT person.event, person.name, email.event, email.name, email.email
FROM person, email
WHERE '$event' = email.event and '$name' = email.name");
if(! $data )
{
die('Could not get data: ' . mysql_error());
}
if($info = mysql_fetch_array($data, MYSQL_ASSOC))
$email=$info['email.email'];
{
mail($email, 'Test Message', $message);
我对php还很陌生,所以我怀疑我遗漏了一些显而易见的东西。如有任何更正,我将不胜感激。谢谢。
最佳答案
假设您的查询是正确的,并且获取了所需的数据,我发现的一个问题是,您正在从mysql结果数组中获取一个email.email成员,您应该只获取
$email=$info['email'];
mysql结果中没有表命名空间。。。因此,如果需要两个同名字段,则必须使用AS子句,并重命名其中一个字段。
此外,还可以使用“print_r”php函数输出获取的数组并调试代码。
关于php - 具有多个表查询的PHP邮件功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7623242/