0

これがphpです:

mysqli_connect("path","my_db","password")or die(); 
mysqli_select_db("my_db")or die();
$query="SELECT * FROM table WHERE type = '$var' OR type = '$othervar'";
$result=mysqli_query($query);
$num=mysqli_numrows($result);
mysqli_close();
$i=0;
while ($i < $num) {
$email=mysqli_result($result,$i,"email");
$i++;

if (!empty($email)) {
mail($email, $subject, $body, $headers);
}

$subject などに値を割り当てるスクリプトは省略しました。クエリから返されるメール アドレスが 1 つしかない場合でも、メールを正常に送信できるためです。

ただし、クエリが複数のメール アドレスを返すと、何も送信できません。

あなたの助けは大歓迎です!

4

1 に答える 1

0

クエリの最後に「GROUP BY ...」を追加すると、うまくいきました。私は全くの素人なので、理由がわかりません:)

最終的なコード:

mysqli_connect("path","my_db","password")or die(); 
mysqli_select_db("my_db")or die();
$query="SELECT * FROM table WHERE type = '$var' OR type = '$othervar' GROUP BY email";
$result=mysqli_query($query);
$num=mysqli_numrows($result);
mysqli_close();
$i=0;
while ($i < $num) {
$email=mysqli_result($result,$i,"email");
$i++;

if (!empty($email)) {
mail($email, $subject, $body, $headers);
}
于 2013-03-30T16:46:51.593 に答える