Оператор обновления SQL не работает, но информация из row = fetch_assoc () выводится на экран - PullRequest
0 голосов
/ 22 марта 2019

Я перебираю строки базы данных с помощью fetch_assoc () и выбираю два столбца.Я проверяю значения этих двух столбцов каждой строки.Если они между 2 значениями, тогда я обновил третью строку как 1 (ИСТИНА), если утверждение верно.Я создаю два соединения, потому что есть два оператора: один выбирает информацию, а другой обновляет столбец, который я хочу обновить.Когда я пытаюсь напечатать информацию на экране, кажется, что оператор SELECT работает, но когда я пытаюсь ОБНОВИТЬ столбец, который мне нужен, оператор UPDATE не обновляет базу данных.Вот мой код:

$conn= mysqli_connect("localhost","root","root");        

$variablech = 1 ;   

$query = "SELECT Client, Info FROM DataTable";


if ($result = mysqli_query($conn, $query)) {

while($row=mysqli_fetch_row($result)) {

    if((($row['Client']>=54.055) && ($row['Client']<=54.117) ) && (( $row['Info']>=-4.827) && ( $row['Info']<=-4.317)))
   {
    $variablech = 0;

    $sql=  " UPDATE DataTable SET InfoData='$variablech' WHERE Client='".$row['Client']."' AND Info='".$row['Info']."'";
    $conn->query($sql);
    echo "yes";
  }

  else
  {
    $variablech = 1;
    $sql=  " UPDATE DataTable SET InfoData='$variablech' WHERE Client='".$row['Client']."' AND Info'".$row['Info']."'";
    $conn->query($sql);

   echo "no";


  }
}
}

1 Ответ

0 голосов
/ 22 марта 2019

Это должно сработать:

...
$sql=  "UPDATE DataTable SET InfoData='".$variablech."' WHERE Client='".$row['Client']."' AND Info='".$row['Info']."'";
mysqli_query($conn, $sql)
...

Предложение:

Не уверен, если в вашей таблице есть поле auto_increment.Если вы это сделаете, выберите его в запросе select, а затем используйте его для обновления данных в запросе update.Это ускорит работу с базой данных, как и ваш проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...