0
我有一個表的銀行的數據庫,該表中有3個字段是id,bank_name,branch_bank。我想根據使用複選框bank_name搜索數據庫。用複選框搜索多個數據
有3條記錄bank_name,3個複選框是:Bank1, Bank2, Bank3
。
如果我點擊出現bank3的複選框,我只想要只有bank3數據的記錄。
如何製作它?
我有一個表的銀行的數據庫,該表中有3個字段是id,bank_name,branch_bank。我想根據使用複選框bank_name搜索數據庫。用複選框搜索多個數據
有3條記錄bank_name,3個複選框是:Bank1, Bank2, Bank3
。
如果我點擊出現bank3的複選框,我只想要只有bank3數據的記錄。
如何製作它?
首先,您需要一些表格,最好由php本身構建,因爲您使用存儲在dbrms中的值。
<form method="post">
<label for="banking_bank1">Bank1:</label>
<input id="banking_bank1" type="checkbox" name="banking[]" value="bank1" /><br />
<label for="banking_bank2">Bank2:</label>
<input id="banking_bank2" type="checkbox" name="banking[]" value="bank2" /><br />
<label for="banking_bank3">Bank3:</label>
<input id="banking_bank3" type="checkbox" name="banking[]" value="bank3" /><br />
<button type="submit" name="search" value="search">Search</button>
</form>
這將構建一個php數組,其中包括所有選中的銀行名稱。
你沒有指定你正在使用哪個dbrms,我選擇了mysql,結構對其他人來說是一樣的。
if (isset($_POST) && isset($_POST['search']))
{
$banksWhereClause = '';
if (! empty($_POST['banking'])) // if the banking var is set, we'll add the values to the query
{
$banksToSearch = is_array($_POST['banking']) ? $_POST['banking'] : array($_POST['banking']);
foreach ($banksToSearch as &$bank)
{
// prevent sql injection
$bank = mysql_real_escape_string($bank);
}
// add all values to an 'IN' clause
$banksWhereClause = "bank_name IN ('" . implode("', '", $banksToSearch) . "')";
}
if (empty($banksWhereClause))
{
$banksWhereClause = '1';
}
$found = array();
// build the final query
$sql = 'SELECT * FROM bank WHERE ' . $banksWhereClause;
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
$found[] = $row;
}
var_dump($found);
}
如果您需要一些額外的解釋,只需詢問。
如果腳本是使用javascript製作的,那麼該怎麼辦?因爲如果您使用PHP,則必須使用submit按鈕。而在JavaScript中不需要點擊提交按鈕,當我們點擊複選框時,數據將自動出現 – user569261 2011-01-14 07:32:57