Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Search in all tables

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1313 7c3ca157-0c34-0410-bff1-cbf682f78f5c
  • Loading branch information...
commit db07325ed66faf7b7d337891fde26af9d991167d 1 parent cf98a33
jakubvrana authored
View
8 adminer/db.inc.php
@@ -1,7 +1,7 @@
<?php
$tables_views = array_merge((array) $_POST["tables"], (array) $_POST["views"]);
-if ($tables_views && !$error) {
+if ($tables_views && !$error && !$_POST["search"]) {
$result = true;
$message = "";
if (count($_POST["tables"]) > 1 && ($_POST["drop"] || $_POST["truncate"])) {
@@ -47,6 +47,12 @@
echo "<p class='message'>" . lang('No tables.') . "\n";
} else {
echo "<form action='' method='post'>\n";
+ echo "<p><input name='query' value='" . h($_POST["query"]) . "'> <input type='submit' name='search' value='" . lang('Search') . "'>\n";
+ if ($_POST["search"] && $_POST["query"] != "") {
+ $_GET["where"][0]["op"] = "LIKE";
+ $_GET["where"][0]["val"] = "%$_POST[query]%";
+ search_tables();
+ }
echo "<table cellspacing='0' class='nowrap' onclick='tableClick(event);'>\n";
echo '<thead><tr class="wrap"><td><input id="check-all" type="checkbox" onclick="formCheck(this, /^(tables|views)\[/);"><th>' . lang('Table') . '<td>' . lang('Engine') . '<td>' . lang('Collation') . '<td>' . lang('Data Length') . '<td>' . lang('Index Length') . '<td>' . lang('Data Free') . '<td>' . lang('Auto Increment') . '<td>' . lang('Rows') . '<td>' . lang('Comment') . "</thead>\n";
$sums = array();
View
2  adminer/dump.inc.php
@@ -147,7 +147,7 @@
$db_style[] = 'CREATE+ALTER';
$table_style[] = 'CREATE+ALTER';
}
-echo "<tr><th>" . lang('Output') . "<td><input type='hidden' name='token' value='$token'>" . $adminer->dumpOutput(0) . "\n"; // token is not needed but checked in bootstrap for all POST data
+echo "<tr><th>" . lang('Output') . "<td><input type='hidden' name='token' value='$token'>" . $adminer->dumpOutput(0) . "\n"; // token is not needed but checked in bootstrap for all POST data //! read from cookie
echo "<tr><th>" . lang('Format') . "<td>" . $adminer->dumpFormat(0) . "\n";
echo "<tr><th>" . lang('Database') . "<td>" . html_select('db_style', $db_style, (DB != "" ? '' : 'CREATE'));
if ($connection->server_info >= 5) {
View
24 adminer/include/functions.inc.php
@@ -479,6 +479,30 @@ function process_input($field) {
}
}
+/** Print results of search in all tables
+* @uses $_GET["where"][0]
+* @uses $_POST["tables"]
+* @return null
+*/
+function search_tables() {
+ global $adminer, $connection;
+ $found = false;
+ foreach (table_status() as $table => $table_status) {
+ $name = $adminer->tableName($table_status);
+ if (isset($table_status["Engine"]) && $name != "" && (!$_POST["tables"] || in_array($table, $_POST["tables"]))) {
+ $result = $connection->query($q = "SELECT 1 FROM " . idf_escape($table) . " WHERE " . implode(" AND ", $adminer->selectSearchProcess(fields($table), array())) . " LIMIT 1");
+ if ($result->num_rows) {
+ if (!$found) {
+ echo "<ul>\n";
+ $found = true;
+ }
+ echo "<li><a href='" . h(ME . "select=" . urlencode($table) . "&where[0][op]=" . urlencode($_GET["where"][0]["op"]) . "&where[0][val]=" . urlencode($_GET["where"][0]["val"])) . "'>" . h($name) . "</a>\n";
+ }
+ }
+ }
+ echo ($found ? "</ul>" : "<p class='message'>" . lang('No tables.')) . "\n";
+}
+
/** Print CSV row
* @param array
* @return null
View
2  changes.txt
@@ -1,6 +1,6 @@
Adminer 2.3.0-dev:
Support for permanent login (customization required)
-Search in all tables (Editor)
+Search in all tables
Show status variables
Print sums in tables overview
Add Delete button to Edit page (regression from 2.0.0)
View
20 editor/db.inc.php
@@ -4,24 +4,10 @@
?>
<form action=""><p>
<?php echo SID_FORM; ?>
-<input name="where[][val]" value="<?php echo h($_GET["where"][0]["val"]); ?>">
+<input name="where[0][val]" value="<?php echo h($_GET["where"][0]["val"]); ?>">
<input type="submit" value="<?php echo lang('Search'); ?>" />
</form>
<?php
-if ($_GET["where"]) {
- $found = false;
- foreach (table_status() as $table => $table_status) {
- $name = $adminer->tableName($table_status);
- if (isset($table_status["Engine"]) && $name != "") {
- $result = $connection->query("SELECT 1 FROM " . idf_escape($table) . " WHERE " . implode(" AND ", $adminer->selectSearchProcess(fields($table), array())) . " LIMIT 1");
- if ($result->num_rows) {
- if (!$found) {
- echo "<ul>\n";
- $found = true;
- }
- echo "<li><a href='" . h(ME . "select=" . urlencode($table) . "&where[][val]=" . urlencode($_GET["where"][0]["val"])) . "'>" . h($name) . "</a>\n";
- }
- }
- }
- echo ($found ? "</ul>" : "<p class='message'>" . lang('No tables.')) . "\n";
+if ($_GET["where"][0]["val"] != "") {
+ search_tables();
}
View
2  todo.txt
@@ -1,7 +1,6 @@
MySQL 5 BIT data type
Transactions in export
Create view and routine options
-Function to fix database encoding - http://php.vrana.cz/prevod-kodovani-mysql.php
Highlight SQL textarea - may use external CodePress
Mass editation of individual rows
Offer enum and set items in search - whisperer
@@ -9,6 +8,7 @@ Variables editation, especially timezone
Use event $intervals + microseconds in relative date functions
Optionally check IP address
Disable spell checking in SQL textareas - spellcheck="false"
+Accept Tab in SQL textareas, Ctrl+Enter to send form
Blob download and image display in edit form (important for Editor with hidden fields in select)
Add title to Logout, edit (in select) and select (in menu) in style "hever"
? Column and table names auto-completition in SQL textarea
Please sign in to comment.
Something went wrong with that request. Please try again.