kirupabshankar Ответов: 1

Сравнение значений таблиц базы данных и проверка чекбокса


Привет, я пытаюсь сравнить два табличных значения и нужно сделать проверенные совпадающие значения флажков, я использую приведенный ниже код, и он не работает

<div class="multiselect">
       	 <?php
		   $sql1="SELECT id, first_name, last_name, chat_id from users_master";
           $result1 = mysqli_query($db,$sql1);
  
		   $sql20="select * from task_assigned_to where id='$getid'";
			$result20=mysqli_query($db, $sql20);
			
			
		while ($row1 = mysqli_fetch_array($result1))  {
			
			
			?>
    <label><input type="checkbox" name="taskers[]" value="<?php echo $row1['chat_id']; ?>" <?php 
				  
				  while($row10=mysqli_fetch_array($result20))
				  {
					  
					  if($row10['assigned_to_id']==$row1['chat_id'])
					  {
						  ?>checked<?php
					  } 
				  }
				  
				  ?> /> <?php echo $row1['first_name']. " " .$row1['last_name']; ?> </label>
    <?php		
		}?>
		   </div>


Что я уже пробовал:

Я попробовал изменить все возможные способы из статей

Richard Deeming

$sql20="select * from task_assigned_to where id='$getid'";

Ваш код потенциально уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]

1 Ответов

Рейтинг:
4

W∴ Balboos, GHB

Вам нужно перепроектировать свой SQL -

Посмотрите на идею о том, что ПРИСОЕДИНИТЬСЯ'с.

В зависимости от того, что вы хотите увидеть, вы можете получить список с заранее подготовленным для вас ответом.

Если вам нужен только список совпадений, используйте внутреннее соединение.
Если вам нужен список совпадений и несогласованных, используйте что-то вроде левого соединения и, возможно, добавьте ISNULL (), проверьте, упростит ли это для вас задачу.

В принципе, я говорю, пусть SQL делает свою работу.