업데이트 :
작업 코드, 올바른 방향으로 밀기위한 jon.배열 변수를 사용하여 Foreach 루프의 SQL 쿼리
<?php
$stmt2 = $conn->prepare("SELECT * FROM userItems WHERE id=:id");
foreach ($moodItems as $id2)
{
// bind the parameters
$stmt2->bindValue(":id", $id2);
if ($stmt2->execute()) {
if($result = $stmt2->fetch(PDO::FETCH_ASSOC)) {
// initialise an array for the results
$itemName2 = $result['itemName'];
$name2 = $result['userId'];
echo $itemName2."<br>";
echo $name2."<br>";
}
}
}
?>
foreach 루프에서 SQL 쿼리를 사용하는 데 문제가 있습니다. 첫 번째 쿼리 (배열) 값을 두 번째 쿼리에서 사용하려고합니다.
첫 번째 쿼리는 올바른 값 (배열)을 제공하기 위해 올바르게 작동하지만. foreach에서 배열을 사용하려고하면 어떤 이유로 정상적으로 작동하지 않으며 어떤 오류도 표시되지 않습니다 ... 단지 데이터베이스에서 데이터를 가져 오지 않습니다.
IE/echo $ itemName2; < ---- 데이터베이스에서 정보를 가져 오지 못했습니다.
도움이 될 것입니다. 감사.
<?php
$attrs = array(PDO::ATTR_PERSISTENT => true);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare the statement.
$stmt = $conn->prepare("SELECT * FROM userMoodboard WHERE name=:name");
// bind the parameters
$stmt->bindValue(":name", $loggedInUser->username);
// initialise an array for the results
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$imageUrl = $row['imageUrl'];
$moodItems = $row['moodItems'];
$moodItems = json_decode($moodItems);
?>
<img src='<?php echo $imageUrl;?>' class="thumbnail"></img>
<?php
$stmt = $conn->prepare("SELECT * FROM userItems WHERE id=:id");
foreach ($moodItems as $id)
{
// bind the parameters
$stmt->bindValue(":id", $id);
// initialise an array for the results
if($stmt->execute()) {
$itemName2 = $row['itemName'];
$name2 = $row['userId'];
echo $itemName2;
echo $name2;
}
}
}
}
?>
자세한 답변을 주셔서 감사합니다 ... 나는이 코드를 시도했지만 여전히 운이 없다. 'code' $ stmt2 = $ conn-> prepare ("SELECT * FROM userItems WHERE id = : id"); foreach ($ moodItems as $ id) { // 매개 변수를 바인딩하십시오. $ stmt2-> bindValue (": id", $ id); // 결과 \t위한 배열을 초기화하는 경우 ($ 결과 = $ stmt2-> 페치 (PDO : FETCH_ASSOC)) {$ \t itemName2 = $ 결과 [ 'itemName에']; \t $ name2 = $ result [ 'userId']; \t \t \t echo $ itemName2; echo $ name2; } } – JustAnotherDude
'$ stmt2-> fetch'를 사용하기 전에'$ stmt2-> execute' 명령을 실행해야합니다. 그렇지 않으면 매개 변수를 바인딩 한 후에 쿼리가 실행되지 않았습니다. – Jon