Является ли php-mysql: обновить столбец с различными значениями в зависимости от условия с использованием переменной PHP - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть веб-форма со строковыми переменными $participant1, participant2 и $winner в php. При публикации формы она обновляет столбцы participant и winner для двух строк в my_table.Тип столбца для winner: BOOLEAN.

. Вот как выглядит моя таблица:

ID |Game |Participant | Winner
-------------------------------
1     1     John          NULL
2     1     Frank         NULL

Отправленная переменная $winner будет именем либо participant («Джон» или «Фрэнк»).Когда она будет отправлена, я бы хотел, чтобы 1 был задан для каждого участника, которому соответствует строка $winner0 для другого участника.

то есть, если $participant1 =='John' and $winner=='John' Тогда таблица должна выглядеть следующим образом:

ID |Game |Participant | Winner
-------------------------------
1     1     John          1
2     1     Frank         0

Кажется, я не могу понять эту часть.

Я пытался:

$participant1= mysqli_escape_string( $con, $params['participant1']);
$participant2= mysqli_escape_string( $con, $params['participant2']);
$Winner= mysqli_escape_string( $con, $params['Winner']);    

mysqli_query($con, "UPDATE my_table SET Winner = IF('$Winner'=='$participant1',1,0) WHERE Participant ='$participant1');

mysqli_query($con, "UPDATE my_table SET Winner = IF('$Winner'=='$participant2',1,0) WHERE Participant ='$participant2'");

Winner все еще показывает NULL впоследствии.Есть ли в первую очередь MySQL способ сделать это?

1 Ответ

0 голосов
/ 26 февраля 2019

Эй, замени == на =

mysqli_query($con, "UPDATE my_table SET Winner = IF('$Winner'='$participant1',1,0) WHERE Participant ='$participant1'");

Протестированный код:

$mysqli = new mysqli("localhost", "root", "", "test");
$a='John';
$b='Mary';

$w='John';

mysqli_query($mysqli, "UPDATE myguest SET Winner = IF('$a'='$w',1,0) WHERE FirstName ='$a'");
mysqli_query($mysqli, "UPDATE myguest SET Winner = IF('$b'='$w',1,0) WHERE FirstName ='$b'");   
...