我目前使用數據表插件來動態列出我爲我正在使用的系統所做的表數據。無法執行數據表搜索
目前我已經閱讀了足夠的插件,我沒有很多問題使用它,但今天我遇到了一個大問題。有一個數據表按特定類型列出人,一切都很好,以我所指出的類型(本例中是一個人)向我顯示信息,但是我感到驚訝的是,在進行搜索時,通過將字母「M」,數據表會自動查找所有以表格開頭或包含字母M的人的內容。我搜索了但我找不到如何保持這個限制,我必須顯示信息以便它也保持在搜索。
我有以下方式的代碼來顯示信息,並進行搜索:
//Ordenacion
if (isset($_GET['iSortCol_0']))
{
$sOrder = "ORDER BY ";
for ($i=0 ; $i<intval($_GET['iSortingCols']) ; $i++)
{
if ($_GET[ 'bSortable_'.intval($_GET['iSortCol_'.$i]) ] == "true")
{
$sOrder .= $aColumnas[ intval($_GET['iSortCol_'.$i]) ]."
".$_GET['sSortDir_'.$i] .", ";
}
}
$sOrder = substr_replace($sOrder, "", -2);
if ($sOrder == "ORDER BY")
{
$sOrder = "";
}
}
//Filtracion
$sWhere = " WHERE s.id_tipo = 1";
if ($_GET['sSearch'] != "")
{
$sWhere = "WHERE (";
for ($i=0 ; $i<count($aColumnas) ; $i++)
{
$sWhere .= $aColumnas[$i]." LIKE '%".$_GET['sSearch']."%' OR ";
}
$sWhere = substr_replace($sWhere, "", -3);
$sWhere .= ')';
}
// Filtrado de columna individual
for ($i=0 ; $i<count($aColumnas) ; $i++)
{
if ($_GET['bSearchable_'.$i] == "true" && $_GET['sSearch_'.$i] != '')
{
if ($sWhere == "")
{
$sWhere = "WHERE ";
}
else
{
$sWhere .= " AND ";
}
$sWhere .= $aColumnas[$i]." LIKE '%".$_GET['sSearch_'.$i]."%'";
}
}
//Obtener datos para mostrar SQL queries
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumnas))."
FROM personas p
INNER JOIN sesion s ON s.personas_cedula=p.cedula
$sWhere
$sOrder
$sLimit
";
$rResult = $mysqli->query($sQuery);
/* Data set length after filtering */
$sQuery = "
SELECT FOUND_ROWS()
";
$rResultFilterTotal = $mysqli->query($sQuery);
$aResultFilterTotal = $rResultFilterTotal->fetch_array();
$iFilteredTotal = $aResultFilterTotal[0];
/* Total data set length */
$sQuery = "
SELECT COUNT(".$sIndexColumn.")
FROM $sTabla
";
$rResultTotal = $mysqli->query($sQuery);
$aResultTotal = $rResultTotal->fetch_array();
$iTotal = $aResultTotal[0];
我對搜索的情況有點擔心,因爲沒有其他數據應顯示。也許這是一件愚蠢的事情,但我真的無法解決它,這就是爲什麼我在尋求幫助。
瞭解準備好的發言,以防止SQL注入 – Jens
**的所有代碼首先是容易受到SQL注入** 數據表發送包含海中的參數你可以使用這個參數和你想允許搜索的所有列離子。 –
但是,這可以放在sSearch中,以便在搜索時只根據sWhere參數進行搜索? – rodrigo2324