我目前使用数据表插件来动态列出我为我正在使用的系统所做的表数据。无法执行数据表搜索
目前我已经阅读了足够的插件,我没有很多问题使用它,但今天我遇到了一个大问题。有一个数据表按特定类型列出人,一切都很好,以我所指出的类型(本例中是一个人)向我显示信息,但是我感到惊讶的是,在进行搜索时,通过将字母“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