Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2013, 01:58   #1
Софья1992
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 12
Радость поиск по таблицам в php

в php я почти ноль,поэтому спрашиваю может быть глупость.
есть база данных с таблицами,мне нужно с помощью php сделать поисковую строку,чтобы можно было зайти в любую таблицу,ввести любое слово и выводилась информация,если она есть в данной таблице.
Код:
<?

if ($_GET['bd']=='') {
	$link=mysql_connect("localhost","root","") or die("Ошибка Соединения с БД!");
	mysql_select_db($db,$link);
	$result=mysql_query("show databases");
	$fields=mysql_num_fields($result); //Кол-во колонок
	$rows=mysql_num_rows($result); //Кол-во строк
	$table=mysql_field_table($result,0); //Название таблицы
	$dbname=mysql_db_name($result,0);

	echo "Информация о БД представлена ниже: <br>";
	echo "всего--> <b>$rows</b> БД:<br>";
	echo "<table border='1'><tr align='center'><td>Тип</td><td>Имя поля</td><td>Размерность</td><td>Атрибуты</td></tr>";
		for ($i=0; $i<$fields; $i++){
		$type=mysql_field_type($result,$i);
		$name=mysql_field_name($result,$i);
		$len=mysql_field_len($result,$i);
		$flags=mysql_field_flags($result,$i);
	echo "<tr><td>$type</td><td>$name</td><td>$len</td><td>$flags</td></tr>";
	}
	echo "</table>";

	$db_list = mysql_list_dbs($link); 
	while ($row = mysql_fetch_object($db_list)) { $rowname=$row->$name;
	    echo "Посмотреть данные о базе <a href='http://localhost/222/index.php?bd=$rowname'>" . $rowname . "</a><br>"; 
	} 
	echo "<br>";
}

if ($_GET['bd']<>'' and $_GET['table1']=='') {
	$db=$_GET['bd']; //Название Базы Данных
	$link=mysql_connect("localhost","root","") or die("Ошибка Соединения с БД!");
	mysql_select_db($db,$link);
	$result=mysql_query("show tables");
	$fields=mysql_num_fields($result); //Кол-во колонок
	$rows=mysql_num_rows($result); //Кол-во строк
	$table=mysql_field_table($result,0); //Название таблицы
	$dbname=mysql_db_name($result,0);
	echo "Выбираем таблицы из mysql <br>";
	echo "Информация об объектах БД представлена ниже: <br>";
	echo "всего--> <b>$rows</b> таблиц:<br>";
	echo "<table border='1'><tr align='center'><td>Тип</td><td>Имя поля</td><td>Размерность</td><td>Атрибуты</td></tr>";
		for ($i=0; $i<$fields; $i++){
		$type=mysql_field_type($result,$i);
		$name=mysql_field_name($result,$i);
		$len=mysql_field_len($result,$i);
		$flags=mysql_field_flags($result,$i);
		echo "<tr><td>$type</td><td>$name</td><td>$len</td><td>$flags</td></tr>";
		}
	echo "</table>";

	$db_list = mysql_query("show tables");
	while ($row = mysql_fetch_object($db_list)) { $rowname=$row->$name;
   		echo "Посмотреть данные таблицы <a href='http://localhost/222/index.php?table1=$rowname&bd=$db'>" . $rowname . "</a><br>"; 
	} 
}

if ($_GET['table1']<>'') {
	$table=$_GET['table1'];
	$db=$_GET['bd'];
	$link=mysql_connect("localhost","root","") or die("Ошибка Соединения с БД!");
	mysql_select_db($db,$link);
	$result=mysql_query("select * from  ".$table." LIMIT 0,50");
	$fields=mysql_num_fields($result);
	$rows=mysql_num_rows($result);
	$table=mysql_field_table($result,0);
	echo "Таблица <b>'$table'</b> содержит <b>$fields</b> колонок и <b>$rows</b> строк.<br>";
	echo "Она содержит след. поля:<br>";
	echo "<table border='1'><tr align='center'><td><b>Тип</b></td><td><b>Имя поля</b></td><td><b>Размерность</b></td><td><b>Атрибуты</b></td></tr>";//Таблица 1
		for ($i=0; $i<$fields; $i++){
		$type=mysql_field_type($result,$i);
		$name=mysql_field_name($result,$i);
		$len=mysql_field_len($result,$i);
		$flags=mysql_field_flags($result,$i);
		echo "<tr><td>$type</td><td>$name</td><td>$len</td><td>$flags</td></tr>";
		}
	echo "</table>";

	echo "<br>Вывод талицы:";
		for ($i=0;$i<mysql_num_rows($result)/50;$i++){
			echo "<a href='http://localhost/222/index.php'>" . $i . "</a>";
		}


	echo "<table border='1'>";//Таблица 2
	echo "<tr align='center'>";
		for ($i=0; $i<$fields; $i++){
		$name=mysql_field_name($result,$i);
		echo "<td><b>$name</b></td>";
		}
		echo "</tr>";
		for($i=0; $i<mysql_num_rows($result); $i++) { //Перебор всех записей в таблице 
		$f=mysql_fetch_array($result); 
   		echo "<tr>";
   			for($j=0; $j<$fields; $j++) {
   			echo "<td>$f[$j]</td>";
   			}
   		echo "</tr>"; 
		} 
	echo "</table>";
}
echo ("</body></html>");
?>
Софья1992 вне форума Ответить с цитированием
Старый 18.05.2013, 18:04   #2
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Если нужно искать по всем таблицам, то алгоритм вот такой:
1) получить имена всех таблиц из information_schema
2) делать по запросу на каждую таблицу
frommars вне форума Ответить с цитированием
Старый 18.05.2013, 22:00   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

честно говоря - задача "неадекватная" ... для чего во всех таблицах искать? .... причем во всех полях? а если поле булево, число итд ... все равно искать ваше слово?
По сути - вы должны заранее в каких полях чего искать, иначе абстрактная фигня получится.... но если она нужна - то действительно - получаем имена таблиц.. потом в каждой таблице - получаем все имена полей, потом проверяем типы полей... и если тип подходящий.. типа varchar , text - то ищем
ADSoft вне форума Ответить с цитированием
Старый 20.05.2013, 12:49   #4
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

1) SHOW TABLES
2) SHOW COLUMNS FROM 'таблица'
3) Ищем поля, по которым будет искать
4) Используем LIKE для поиска
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить запрос к нескольким таблицам в один (php+MySql) Maxx PHP 17 23.08.2010 16:32
поиск в php Alenka_90 PHP 12 22.04.2010 20:53
поиск на PHP maccen PHP 10 18.08.2008 17:28
Поиск по связанным таблицам Таня84 БД в Delphi 1 22.02.2007 10:37