[英]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.