Я пытаюсь вставить каждое имя пользователя в базу данных MySQL, если пользователя нет в определенной таблице.В противном случае просто обновите определенное значение, если пользователь уже существует (увеличьте счетчик на +1).
Моя проблема заключается в том, что он вставляет только одного пользователя, а если пользователь там, просто увеличивает значение (с помощью +1) этому одному пользователю (последний вставленный пользователь) и не будет вставлять или обновлять другим пользователям.
Сессия:
$userName = $_SESSION['name'];
Запрос для отображения друзей :
$query = "SELECT * FROM
users u
JOIN connections con on u.userName = con.Friend
WHERE u.userName = '$userName'
AND con.connectionStatus = '1'
UNION
SELECT * FROM
users u
JOIN connections con on u.userName = con.FriendReferee
WHERE u.userName = '$userName'
AND con.connectionStatus = '1'";
Извлечениедрузья из таблицы соединений:
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$friends = $row["Friend"];
$friendRef = $row["FriendReferee"];
if ($userName == $friends) {
$userName = $friendRef;
} elseif ($userName == $friendRef) {
$userName = $friends;
}
}
}
Вставить или обновить пользователя со значением в другую таблицу:
$result = $conn->query("SELECT id, userTo, counter FROM notbell WHERE userTo = '$userName'");
if($result->num_rows == 0 ) {
$sql2 = "INSERT INTO notbell (id, userTo, counter)
VALUES ('', '$userName', '1')";
} else {
mysqli_query($conn, "UPDATE notbell
SET counter = counter + 1
WHERE userTo = '$userName'");
}
Выполнить запрос:
if ( $conn->query($sql2) === TRUE) {
$prevUrl = $_SERVER['HTTP_REFERER'];
header('Location: '.$prevUrl);
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
Я предполагаю, что я имею отношение к foreach
, но не уверен, как мне это сделать.