Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- session_start(); // Will be using sessions for minor caching; increasing performance/speed
- /* Functions */
- function db_connect(){
- Global $conn;
- $conn = mysql_connect('localhost','root','') or die('Cannot Connect To MySQL Server because: ' . mysql_error());
- }
- function db_select_db($dbname){
- Global $conn;
- mysql_select_db($dbname, $conn) or die('Cannot Select database "' .$dbname . '" because: ' . mysql_error($conn));
- }
- function db_tables($dbname){
- if( isset($_SESSION['dbs'][$dbname]['__tables'])){ // Retrieve From Cache if exists
- return $_SESSION['dbs'][$dbname]['__tables'];
- }
- Global $conn;
- $dbname = mysql_real_escape_string($dbname);
- $stmt = "SHOW TABLES FROM " . $dbname;
- $r = mysql_query($stmt, $conn) or die('Query [' . $stmt . '] failed because: ' . mysql_error($conn));
- $tables = Array();
- while($row = mysql_fetch_array($r)){
- $tables[] = $row[0];
- }
- if( isset($_SESSION['dbs'][$dbname])){
- $_SESSION['dbs'][$dbname]['__tables'] = $tables;
- }
- return $tables;
- }
- function db_columns($dbname, $tblname){
- if( isset($_SESSION['dbs'][$dbname]['__columns'][$tblname])){
- return $_SESSION['dbs'][$dbname]['__columns'][$tblname];
- }
- Global $conn;
- $dbname = mysql_real_escape_string($dbname);
- $tblname = mysql_real_escape_string($tblname);
- $stmt = "SHOW COLUMNS FROM {$dbname}.{$tblname}";
- $r = mysql_query($stmt, $conn) or die('Query [' . $stmt . '] failed because: ' . mysql_error($conn));
- $columns = Array();
- while($row = mysql_fetch_row($r)){
- $columns[] = $row[0];
- }
- if( isset($_SESSION['dbs'][$dbname])){
- $_SESSION['dbs'][$dbname]['__columns'][$tblname] = $columns;
- }
- return $columns;
- }
- function db_databases(){
- if( isset($_SESSION['dbs']) && is_array($_SESSION['dbs']) && count($_SESSION['dbs']) > 0){ // Retrieve From Cache if exists
- return array_keys($_SESSION['dbs']);
- }
- Global $conn;
- $stmt = "SHOW DATABASES";
- $r = mysql_query($stmt, $conn) or die('Query [' . $stmt . '] failed because: ' . mysql_error($conn));
- $dbs = Array();
- while($row = mysql_fetch_array($r)){
- $dbs[$row[0]] = Array();
- }
- $_SESSION['dbs'] = $dbs;
- return array_keys($dbs);
- }
- if( isset( $_POST['submit'] )){
- }
- function load_db_structure($dbname){
- if( isset($_SESSION['dbs'][$dbname]) ){
- return $_SESSION['dbs'][$dbname];
- }
- db_connect();
- foreach(db_tables($dbname) as $tbl){
- db_columns($dbname, $tbl);
- }
- return $_SESSION['dbs'][$dbname];
- }
- function results_to_table($results, $dbname, $tbl){
- $table = '<table cellspacing="1" border="1" style="width: 100%">';
- $columns = db_columns($dbname, $tbl);
- $colCount = count($columns);
- $table .= ' <tr>
- <td colspan="' . $colCount . '"><span style="font-style: italic;">' . $dbname . '</span>.<span style="font-weight: bold;font-size: 130%">' . $tbl . '</span></td>
- </tr>' . PHP_EOL;
- $table .= ' <tr>' . PHP_EOL;
- foreach ($columns as $col){
- $table .= ' <th>' . $col . '</th>' . PHP_EOL;
- }
- $table .= ' </tr>' . PHP_EOL;
- while($row = mysql_fetch_row($results)){
- $table .= ' <tr>' . PHP_EOL;
- foreach($row as $val){
- $table .= ' <td>' . $val . '</td>' . PHP_EOL;
- }
- $table .= ' </tr>' . PHP_EOL;
- }
- $table .= '</table><br><br>' . PHP_EOL;
- return $table;
- }
- /* Processing */
- $search = (isset($_POST['search']))? trim($_POST['search']) : '';
- if( strlen($search) > 0){
- db_connect();
- $search = mysql_real_escape_string($search);
- $dbname = $_POST['pmo'];
- load_db_structure($dbname);
- $tables = db_tables($dbname);
- $results = '';
- foreach($tables as $tbl){
- $columns = db_columns($dbname, $tbl);
- $stmt = "SELECT * FROM {$dbname}.{$tbl} WHERE ";
- $i =0;
- foreach($columns as $col){
- if( $i++ > 0){
- $stmt .= ' OR ';
- }
- $stmt .= $col . " LIKE '%" . $search . "%'";
- }
- $r = mysql_query($stmt, $conn) or die('Query [' . $stmt . '] failed because: ' . mysql_error($conn));
- if( mysql_num_rows($r) > 0){
- $results .= results_to_table($r, $dbname, $tbl);
- }
- }
- if( strlen( $results ) > 0){
- echo '<h2>Results for "' . $search . '"</h2>' . PHP_EOL;
- echo $results;
- }else{
- echo '<h2>No Results Found for "' . $search . '"</h2>' . PHP_EOL;
- $search = '';
- }
- }
- echo '<form method="post">
- <input type="text" name="search" value="' . $search . '">';
- echo '<select name="pmo">';
- db_connect();
- foreach(db_databases() as $dbname){
- echo '<option value="' . $dbname . '">' . $dbname . '</option>';
- }
- echo '
- <input type="submit" value="Search">
- </form>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement