diff --git a/select.inc.php b/select.inc.php index a9df916e..93de1d8e 100644 --- a/select.inc.php +++ b/select.inc.php @@ -22,6 +22,7 @@ if (isset($rights["insert"])) { if (!$columns) { echo "

" . lang('Unable to select the table') . ($fields ? "" : ": " . $mysql->error) . ".

\n"; } else { + $table_status = table_status($_GET["select"]); $indexes = indexes($_GET["select"]); echo "
\n
" . lang('Search') . "\n"; if (strlen($_GET["server"])) { @@ -44,6 +45,9 @@ if (!$columns) { } } $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "REGEXP", "IN", "IS NULL"); + if ($table_status["Engine"] == "MyISAM") { + $operators[] = "AGAINST"; + } $i = 0; foreach ((array) $_GET["where"] as $val) { if (strlen($val["col"]) && in_array($val["op"], $operators)) { @@ -53,7 +57,11 @@ if (!$columns) { $in = "NULL"; } } - $where[] = idf_escape($val["col"]) . " $val[op]" . ($val["op"] == "IS NULL" ? "" : ($val["op"] == "IN" ? " ($in)" : " '" . $mysql->escape_string($val["val"]) . "'")); + if ($val["op"] == "AGAINST") { + $where[] = "MATCH (" . idf_escape($val["col"]) . ") $val[op] ('" . $mysql->escape_string($val["val"]) . "' IN BOOLEAN MODE)"; + } else { + $where[] = idf_escape($val["col"]) . " $val[op]" . ($val["op"] == "IS NULL" ? "" : ($val["op"] == "IN" ? " ($in)" : " '" . $mysql->escape_string($val["val"]) . "'")); + } echo "
"; echo ""; echo "
\n";