簡體   English   中英

嘗試在 MySQL INNER JOIN 中使用變量

[英]Trying to use variable in MySQL INNER JOIN

我是一個 php 和 MySQL 新手。 我所做的是創建一個帶有<select>下拉列表的 html 表單。 根據表單中的選擇,它會更改$_SESSION[campaignID]變量。 更改表單中的選擇應該會更改頁面上顯示的內容。 該頁面由一個論壇風格的帖子組成,允許用戶填寫一個文本區域,然后將其提交到 MySQL 數據庫中的一個名為“帖子”的表中。 在同一頁面上,我然后顯示“posts”表的內容。

我所做的是在帖子 MySQL 表中,我添加了一個活動 ID 行。 然后在我的活動表中,我還有一個活動 ID 行。 每次創建活動時,活動表中的活動 ID 都會自動增加。 然后使用前面提到的下拉菜單,我可以選擇我想要的活動,然后它應該顯示與我選擇的活動具有相同活動 ID 的所有帖子。

當我選擇各種選項時,我可以驗證$_SESSION[campaignID]是否正在更改。 因為當我這樣做然后保存另一個帖子時,它會使用會話變量 CampaignID 並將其正確保存在帖子表中。

現在我需要它做的是,當我更改下拉列表(然后更改$_SESSION[campaignID] )時,我需要它顯示與所選活動共享相同活動$_SESSION[campaignID]的帖子。 當我試圖在我的 INNER JOIN 查詢中放置一個變量時,我只是無法讓它顯示出來。 我有一種感覺,我提供的信息可能不夠,但不確定我還需要在這里包含什么。 幫助?

包含 INNER JOIN 查詢並顯示帖子表各行的代碼

更新

    <?php
$con=mysqli_connect("localhost","dorians","ds2953!b67P$","aldentec");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$campaignID = $_SESSION['campaignID'];


$result = mysqli_query($con,"SELECT posts.postDate, posts.postName, posts.postEntry FROM posts INNER JOIN campaigns ON posts.campaignID=" . $campaignID);

while($row = mysqli_fetch_array($result))
  {
  echo "<div id='campaignPostContainer'>";
  echo "<ul class='campaignPostBox'>";
  echo "<p class='postInfo'>";
  echo "Posted on:";
  echo "<li>" . $row['postDate'] . "</li>";
  echo "</p>";
  echo "<p class='postInfo'>";
  echo "Posted by:";
  echo "<li>" . $row['postName'] . "</li>";
  echo "</p>";
  echo "<li class='postEntry'>" . $row['postEntry'] . "</li>";
  echo "</ul>";
  echo "</div>";
  echo "<hr>";
  }


mysqli_close($con);
?>

沒有進入使用准備的語句咆哮......

您不是在拉會話變量,而是將$campaignId分配給字符串$_SESSION[campaignID]

更改您的線路:

 $campaignID = '$_SESSION[campaignID]';

到:

 $campaignID = $_SESSION['campaignID'];

此外,除非您在 ON 子句中定義以下內容,否則您的查詢將生成交叉產品:

SELECT posts.postDate, posts.postName, posts.postEntry FROM posts 
   INNER JOIN campaigns ON posts.campaignID= $campaignID
         AND posts.campaignID= campaigns.id

值應該是單引號'所以你可以試試這個

posts.campaignID='" . $campaignID ."'"

代替

posts.campaignID=" . $campaignID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM