簡體   English   中英

復選框,SQL選擇語句和PHP

[英]Checkboxes, SQL select statements & PHP

我試圖根據用戶提交的選擇顯示數據庫表中的某些行。 這是我的表格代碼

    <form action="choice.php" method="POST" >
  <input type="checkbox" name="variable[]" value="Apple">Apple
  <input type="checkbox" name="variable[]" value="Banana">Banana
  <input type="checkbox" name="variable[]" value="Orange">Orange
  <input type="checkbox" name="variable[]" value="Melon">Melon
  <input type="checkbox" name="variable[]" value="Blackberry">Blackberry

據我了解,我將這些值放入一個稱為變量的數組中。 我的兩列稱為收據名稱和配料(配料下的每個字段都可以存儲許多水果)。 我想做的是,如果選中了多個復選框,那么將顯示收據名稱。

這是我的PHP代碼。

<?php
// Make a MySQL Connection
mysql_connect("localhost", "*****", "*****") or die(mysql_error());
mysql_select_db("****") or die(mysql_error());

$variable=$_POST['variable'];
foreach ($variable as $variablename)
{
echo "$variablename is checked";
}

$query = "SELECT receipename FROM fruit WHERE $variable like ingredients";

$row = mysql_fetch_assoc($result);
foreach ($_POST['variabble'] as $ingredients)
echo $row[$ingredients] . '<br/>';
?>

我對php非常陌生,只希望顯示數據,我不需要對其執行任何操作。 我已經嘗試了許多select語句,但是無法顯示任何結果。 我的數據庫連接很好,它確實可以打印出要檢查的變量。

提前謝謝了。

編輯:

感謝一百萬的答復。 但是,我嘗試更正自己的code = blank頁面,以及== blank頁面上方的兩個解決方案。 rr! 這是我嘗試的一種解決方案。

<?php
// Make a MySQL Connection
mysql_connect("localhost", "", "") or die(mysql_error());
mysql_select_db("") or die(mysql_error());

$query = "SELECT receipename FROM fruit ";
$cond = "";

foreach($variable as $varname)$cond .= " $varname like 'ingredients' OR";
$cond = substr_replace($cond, '', -2);
$query .= " WHERE $cond";

$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
echo $row['receipename'],'<br />';
}

我也試過

<?php
// Make a MySQL Connection
mysql_connect("localhost", "24056", "project99") or die(mysql_error());
mysql_select_db("24056db2") or die(mysql_error());

$variable=$_POST['variable'];
foreach ($variable as $variablename)
{

$query = "SELECT receipename FROM horse WHERE ingredients = '".$variablename."'";
while($row = mysql_fetch_assoc($query))
{
echo $row['receipename']."<br/>";
}
}
?>

我想說另一種說法,如果checkbox變量等於Ingredients列下的一條記錄,我希望打印出該記錄的收據名稱。 我自己在這里幾乎感到困惑,哈哈。

我可以嘗試的其他任何想法???

您的代碼中的更正

$query = "SELECT receipename FROM fruit WHERE $variable like ingredients";

$row = mysql_fetch_assoc($result);

你看到上面的區別了嗎?

放置“ $ query”代替“ $ result” mysql_fetch_assoc($ result)

我的解決方案

$variable=$_POST['variable'];
foreach ($variable as $variablename)
{

$query = "SELECT receipename FROM fruit WHERE ingredients = '".$variablename."'";
while($row = mysql_fetch_assoc($query))
{
echo $row['receipename']."<br/>";
}
}

我不清楚您的問題,可以嘗試以下操作-

$query = "SELECT receipename FROM fruit ";
$cond = "";

foreach($variable as $varname)$cond .= " $varname like 'ingredients' OR";
$cond = substr_replace($cond, '', -2);
$query .= " WHERE $cond";

$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
   echo $row['receipename'],'<br />';
}

注意:此代碼未經測試

暫無
暫無

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

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