簡體   English   中英

如何使用 mySQLi 在 SQL 查詢中使用帶有表對象的 $result 變量

[英]How to use a $result variable with table object in SQL query using mySQLi

我試圖讓這段代碼工作,但它只工作到第二個 echo 語句echo "Finished 2"; .

<?php
if (count($_GET) > 0){
$sql = "SELECT * FROM winery WHERE winery_name='".$_GET['winery_name']."'";
echo "Finished 1";
$result = $db->query($sql);
echo "Finished 2";
$sql = "SELECT * FROM".$result."WHERE wine_type='".$_GET['wine_type']."'";
echo "Finished 3";
$result = $db->query($sql);
echo "Finished 4";
$sql = "SELECT * FROM".$result.", wine_variety WHERE wine_id=wine_variety.wine_id";
echo "Finished 5";
$result = $db->query($sql);
echo "Finished 6";
$sql = "SELECT * FROM".$result."WHERE variety_id='".$_GET['grape_variety']."'";
echo "Finished 7";
$result = $db->query($sql);
echo "Finished all queries";

}
?>

根據我的理解,問題是 sql 無法將$result識別為表,但$result存儲了我查詢的返回表。 如何讓 SQL 在新查詢中使用$result的返回表?

在此處輸入圖片說明

我想從你的酒廠表你正在獲取其他表名???

如果是這樣,您需要從 $result 中獲取行,然后從酒廠表中獲取適當的列(即具有其他表名的列)。

順便說一句,最好的選擇是加入兩張桌子。

我認為你犯錯的另一點是

$sql = "SELECT * FROM".$result."WHERE wine_type='".$_GET['wine_type']."'";

應該

$sql = "SELECT * FROM ".$result." WHERE wine_type='".$_GET['wine_type']."'";

FROM 和雙引號之間以及雙引號和 WHERE 之間的空格

要從 winary_name 獲取 winery_id,您可以編寫 HTML 表單,例如

<select name="winary_id">
    <option value="Winary ID HERE">Winary Name Here</option> // you can generate your dynamic options like this which will return id instead of name
</select>

暫無
暫無

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

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