Правильный доступ ко всей строке для вставки базы данных с MySQL и PHP - PullRequest
0 голосов
/ 08 ноября 2018

Я работаю над проектом, в котором мы отправляем сообщения пользователям, используя базу данных. В этом php-файле я вставляю в базу данных поля с полем to, from, date и message. Цель состоит в том, чтобы отправить одно и то же сообщение всем людям в пределах одной определенной компании. Однако, когда я пытаюсь отправить его, сообщение иногда не отправляется, а когда это происходит, оно отправляет сообщение только первому контакту в группе / строке, который я получаю из базы данных. Я видел другие примеры в Интернете, но до сих пор я не видел такой проблемы с кем-либо еще. Любые предложения будут оценены.

$sql = 'SELECT drivers.username FROM project.drivers WHERE drivers.sponsor="'.$_SESSION["company"].'"'; //query to get all driver usernames within one company
$result = $conn->query($sql);
//$row = mysqli_fetch_array($result);
while($row = mysqli_fetch_array($result)){ //iterating throughout all the drivers
    $to  = $row["username"]; //username of current driver
    $from = $_SESSION["username"]; //from current company
    $message = $_SESSION["username"] . " updated your point to dollar ratio. Your new point to dollar ratio is " . $_SESSION["pointRatio"] . "."; //message
    $sql2 = "INSERT INTO project.messages(messages.date, messages.to, messages.from, messages.message) VALUES(now(), '".$to."', '".$from."', '".$message."')"; //inserting message into database
    $conn->query($sql2); //query for database
    $to  = $_SESSION["username"]; //this is the same format but sending the message to the company itself
    $message = $_SESSION["username"] . " updated your point to dollar ratio. Your new point to dollar ratio is " . $_SESSION["pointRatio"] . ".";
    $sql2 = "INSERT INTO project.messages(messages.date, messages.to, messages.from, messages.message) VALUES(now(), '".$to."', '".$from."', '".$message."')";
    $conn->query($sql2);
}

1 Ответ

0 голосов
/ 08 ноября 2018

если вы добавляете var_dump и проверяете записи из базы данных - правильно? Вы действительно получаете все строки?

$sql = 'SELECT drivers.username FROM project.drivers WHERE drivers.sponsor="'.$_SESSION["company"].'"'; //query to get all driver usernames within one company
$result = $conn->query($sql);
//$row = mysqli_fetch_array($result);
while($row = mysqli_fetch_array($result)){ //iterating throughout all the drivers
    var_dump($row);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...