簡體   English   中英

使用HTML表單和PHP查詢上一個SQL查詢的結果

[英]Querying the result of an previous SQL query, using a HTML form and PHP

我一直在絞盡腦汁想弄清楚如何使它起作用。 現在,我將在這里對其進行解釋。

我想要做的是,當用戶鍵入的東西變成一種形式,它返回的查詢結果,然后使用查詢的結果,開展對他們的另一個查詢。 我正在使用PHP和oracle數據庫。

例如:目前,我有一個包含食譜及其成分的數據庫; 並且我有一個表格,用戶可以在其中輸入成分。 在此示例中,是培根。

在此處輸入圖片說明

那很好。 但是,我很難實現的是用戶輸入其他成分時,當前表的結果在那里並進一步查詢。 假設我輸入“奶酪”,然后查詢並顯示所有包含培根奶酪的食譜。

通過簡單的SQL可以輕松實現此過程,但是就像我看到的那樣,很難將其轉換為使用表單。

現在,我有了一個解決方案,要么與臨時表,動態sql有關,要么二者兼而有之。

預先感謝您對此事的任何幫助。

我的代碼如下:

<?php
if(isset($_POST['submit'])) 
{ 
    $name = $_POST['name'];
}

function do_fetch($myeid, $s)
{
  print '<table border="1">';
  while ($row = oci_fetch_array($s, OCI_RETURN_NULLS+OCI_ASSOC)) {
    print '<tr>';
    foreach ($row as $item) {
      print '<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
    }
    print '</tr>';
  }
  print '</table>';
  print '<br>';
}

// Create connection to Oracle
$c = oci_connect("system", "luigi98", "localhost/XE");

// Use bind variable
$query = "SELECT DISTINCT r.recipeTitle AS recipe
FROM RECIPES.recipe r
WHERE recipeID IN(
    SELECT r.recipeID
    FROM recipes.recipeIng il
    INNER JOIN RECIPES.ingredient i ON il.ingredientID = i.ingredientID 
    WHERE il.recipeID = r.recipeID
      AND i.ING = :eidbv)";
$s = oci_parse($c, $query);

$myeid = $name;
oci_bind_by_name($s, ":EIDBV", $myeid);
oci_execute($s);
do_fetch($myeid, $s);


// Close the Oracle connection
oci_close($c);

?>
<p>Enter ingredient</p>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   <input type="text" name="name"><br>
   <input type="submit" name="submit" value="Search"><br>
</form>

有幾種方法可以做到這一點。

最簡單的方法可能是在搜索框中再次顯示您的原始成分,並指示用戶根據需要添加更多成分(以空格,逗號等分隔)。

然后,您可以針對這些字符展開搜索詞,並為每種成分添加條件。

暫無
暫無

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

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