데이터베이스에 두 개의 테이블이 있습니다. 그 중 하나는 만들 수있는 '건물'목록입니다. 다른 하나는 사용자가 만든 건물 목록입니다.한 테이블에서 다른 테이블에없는 행을 어떻게 표시합니까?
한 페이지 (cityproduction.php)에는 빌드 할 수있는 '건물'목록이 표시됩니다. 빌드 할 수있는 건물, 아직 만들지 않은 건물을 표시하고 싶습니다. 여기
내 코드입니다 :$sql = "SELECT * FROM [The list of built buildings] WHERE building_owner = '$user'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$variable = $row["building_name"];
}
(...)
$sql = "SELECT * FROM [The list of ALL buildings] WHERE name != '$variable' ORDER BY id asc";
$result = mysqli_query($database,$sql) or die(mysqli_error($database));
while($rws = mysqli_fetch_array($result)){
echo $rws["name"]; (etc.)
이것이하고있는 것은 단지 모든 사용자가 구축하고 건물 중 하나를하지-표시되지 그들.
$ 변수가 al 이길 원합니다. 해당 사용자가 작성한 모든 건물 중 일부입니다. 방금 배열로 저장한다고 가정했는데, 어떻게 배열로 저장할 수 있습니까? – Daniel
'while' 앞에'$ variable = array();'와'while' 안에'$ variable [] = $ row [ 'building_name'];'을 사용하지만 두 번째 쿼리는 루프에 있어야합니다 배열의 각 값으로 질의를 할 수 있습니다.이 경우에는 'foreach' 루프가 될 수 있습니다. –
@DanterNetwork 그런 문자열에 배열을 사용할 수 없습니다. 당신은 CSV를 구축하고 그것을'in' SQL에 전달할 수 있습니다. 이것은 두 번째 레벨 SQL 인젝션을 열 것이다. – chris85