У вас есть этот код:
if($msg != "") {
if($row["mobile_notification"] == 1) {
// stuff
}
if($row["email_notification"] == 1) {
// stuff
}
который отправляет электронное письмо один раз, если для mobile_notification установлено значение 1, а также отправляет электронное письмо, если для email_notification установлено значение 1; это может быть причиной. Вы можете использовать
else if($row["email_notification"] == 1) {
чтобы отправить электронное письмо, только если мобильный телефон не был отправлен.
Трудно сказать, не зная больше кода или данных. Некоторые вещи, которые вы можете сделать, чтобы отследить его дальше
Добавьте эхо в функцию PHP sendMessage:
function sendMessage($to, $toName, $body) {
echo 'Sending mail...';
// rest of the function here
}
и посмотрим, действительно ли он выстрелит дважды (так и должно быть).
Теперь посмотрим, что каждый раз возвращается из базы данных
while($row = mysql_fetch_array($results)) {
print_r($row);
// script continues
}
Возможно, для каждого запроса возвращаются 2 строки, и в этом случае вы можете посмотреть на ваш запрос SQL, чтобы убедиться, что это правильно.
Предположим, что это так, возможно, файл PHP вызывается дважды, поэтому поместите отладку в файл C # (я не знаю C #, поэтому я оставлю вам синтаксис)
public static void PostUpdate(string uid)
{
// echo uid here
// script continues
WebRequest request = WebRequest.Create("http://127.0.0.1/bin/server/check_table.php");
request.Method = "POST";
Просто распечатав какой-то вывод, вы можете отследить, где он идет не так, а затем посмотреть, почему он идет не так, как только вы это узнаете.
Я только что видел, что ты делаешь это ...
while($row = mysql_fetch_array($results)) {
А потом, в этом цикле, говоря:
$results = mysql_query("UPDATE users...
И переопределение результирующего набора, над которым вы уже работаете. Вы можете выполнить запрос, не принимая возвращаемого значения;
mysql_query("UPDATE users
или просто дайте ему другое имя во второй раз
$results2 = mysql_query("UPDATE users...
И это, вероятно, будет работать:)