본문 바로가기
MySql

MySQL foreach 루프에서 SQL 결과 사용

by 베이스 공부 2020. 9. 25.
반응형

나는 여기서 어리석게도 명백한 것을 놓치고 있다고 느낍니다. SQL 쿼리의 결과를 얻은 다음 루프에서 사용하려고합니다. 나는 내가 어리석게도 명백한 것을 놓치고있는 것처럼 느낀다. 나는 주석 처리 된 줄을 사용하거나 사용하지 않고 그것을 시도했다.

<?php
$sentToID = $_SESSION['userID'];

$query = "SELECT *
          FROM messages
          WHERE sentToID = '$sentToID'";

$results = mysql_query($query);
//$userData = mysql_fetch_array($results, MYSQL_ASSOC);

foreach ($results as $result){
    $messageID = $result['messageID'];
    $sentFromID = $result['sentFromID'];
    $subject = $result['subject'];
    $body = $result['body'];
    $dateTime = $result['dateTime'];

    $query = "SELECT usertype 
              FROM user
              WHERE userID = '$sentFromID'";
    $messageResult = mysql_query($query);
    $messageData = mysql_fetch_array($messageResult, MYSQL_ASSOC);

    $usertype = $messageData['usertype'];

    $query = "SELECT * 
              FROM $usertype
              WHERE userID = '$sentFromID'";

    $messageResult = mysql_query($query);
    $messageData = mysql_fetch_array($messageResult, MYSQL_ASSOC);

    if ($usertype == "jobseeker"){
        $forname = $messageData['forename'];
        $surname = $messageData['surname'];
        echo "<div><p>" . $forename . " " . $surname . "</p>
              <p>Subject: " . $subject ."</p>
              <p>Body: " . $body . "</p></div>";
    }
    if ($usertype == "employer"){
        $forname = $messageData['forename'];
        $surname = $messageData['surname'];
        $companyName = $messageData['companyName'];

        echo "<div><p>" . $forename . " " . $surname . " - " . $companyName . "</p>
              <p>Subject: " . $subject ."</p>
              <p>Body: " . $body . "</p></div>";
    }
}
?>

어떤 도움이라도 대단히 감사하겠습니다.

 

해결 방법

 


while($result = mysql_fetch_assoc($results)) {
    // your code
}

 

참조 페이지 https://stackoverflow.com/questions/8538511

 

 

반응형

댓글