Снова Mysql

BlackScorp

Новичок
Снова Mysql

Здравствуйте.
У меня такой вопрос.
Есть бд. допустим lincks
в ней таблици разного рода.
catalog, price, lincks
мне нужно произвести поиск в дб. но не вотдельной таблици а сразу во всех
есь ли запрос типа этого.
select * from * where и все такое.
Заранее благодарен.
С уважением Евгений.
 

master_x

Pitavale XXI wieku
так сделать нельзя, надо "select * from catalog, price, links where catalog.поле='bla-bla-bla' and price.поле='bla-bla-bla' " и т.д.
 

SiMM

Новичок
> select * from catalog, price, links where catalog.поле='bla-bla-bla' and price.поле='bla-bla-bla'
Вы не пробовали задуматься над тем, что же вернёт этот запрос? А вы попробуйте...
 

ForJest

- свежая кровь
BlackScorp
нет. Такого запроса нет. Это запантетованная технология под названием "Жидкое счастье". Стоит дорого и не продаётся.
 

BlackScorp

Новичок
Спасибо за ответы.
Очень жаль что такова запроса нет. У меня просто эта база будет постоянно расти тойсь будут появляться новые таблицы типа p_1,p_2,p_3 помимо catalog, price , lincks. как тогда получить список всех таблиц в базе данных и произвести поиск?
 

divxak

Guest
У меня в проекте похожая ситуация, там каждый день создается новая таблица. Решено так - еще одна таблица с двумя полями - дата и название таблицы. В скриптах, по определенному интервалу времени, считываются названия таблиц, а потом в цикле из каждой таблицы делается выборка
 

Tor

Новичок
divxak
совсем не обязательно показывать здесь свое кривое решение простой проблемы

если таблицы одинаковой структуры, то можно перечислять их через запятую

названия таблиц возвращает магический запрос вида
show tables;
 

BlackScorp

Новичок
о Великие из великих умов спасибо Вам. Я нашел выход из положения.
$sql = "show tables;";
$res = mysql_query($sql);

while($row = mysql_fetch_array($res))
{
echo $row["0"] . "<br>";
}
Эта функция выводит все таблици. но мне нужно чтоб все эти таблици влезли в простую переменную. например
$a='catalog//price//links// и так далее.
ПОМОГИТЕ ПОЖАЛУЙСТА. Я сегодня с сильного будуна а шефу нужно скрипт здать сегодня вечером. Болда моя совсем сегодня не варит. помогите Пожалуйста. С Уважением Евгений
 

BlackScorp

Новичок
$sql = "show tables;";
$res = mysql_query($sql);

while($row = mysql_fetch_array($res))
{
echo $row["0"] . "<br>";
$a=$row["0"];
$b=$b."//".$a;

}
Нашел выход. Да я понимаю. Я закину $b в запрос
$result =mysql_query("SELECT * FROM $b WHERE name LIKE '%$search%'");
Мне только осталось убрать // и поставить запятые.
 

confguru

ExAdmin
Команда форума
BlackScorp

Сделай отдельную таблицу search - где будут хранится
нужные тебе данные и ссылка на исходник.
Напиши индексатор заполняющий и обновляющий ее.
И ищи только по ней.
 

Tor

Новичок
Мне только осталось убрать // и поставить запятые.
я плакаль
сначала с упорством, достойным иного применения расставляет слеши, а потом мучается с их заменой на запятые
ха-ха-ха
 

BlackScorp

Новичок
СПАСИБО БОЛЬШЕ ЗА СОВЕТ. Я так и сделаю.
Действительно БОЛЬШОЕ спасибо.
 

BlackScorp

Новичок
Tor
Тоже верно Но сегодня у меня чайник не пашет.

-~{}~ 30.06.05 15:18:

Я сейчас комп нафиг взорву.
Вчем проблема? Подскажите пожалуйста.
Запрос не обрабатывается.
$result =mysql_query("SELECT * FROM firms,links WHERE name LIKE '%$search%'");
А так обрабатывается
$result =mysql_query("SELECT * FROM firms WHERE name LIKE '%$search%'");
не пойму вообще. через запятую запрос не обрабатывается
в чем дело?

-~{}~ 30.06.05 15:18:

Я наверное Вас совсем достал?
Заранее извеняюсь.
 

Tor

Новичок
покажи, что выводят
describe firms
describe links

и надо бы писать
WHERE firms.name
 

BlackScorp

Новичок
describe links=id,name,url,description,cid,counter
describe firms=id,name,infa_k,infa_all,adress,www,email,status
или чтото еще надо показать?

-~{}~ 30.06.05 15:35:

FIRMS
id int(11) Нет auto_increment
name text cp1251_general_ci Нет
infa_k text cp1251_general_ci Нет
infa_all text cp1251_general_ci Нет
adress text cp1251_general_ci Нет
www text cp1251_general_ci Да NULL
email text cp1251_general_ci Да NULL
status enum('y', 'n') cp1251_general_ci Нет n

-~{}~ 30.06.05 15:36:

Это с phpMyAdmin
 

Tor

Новичок
SELECT * FROM firms,links WHERE name LIKE '%$search%
и откуда база должна знать, какой name ты имеешь в виду?
возможно, тебе нужно писать
WHERE firms.name LIKE '%$search%' or links.name LIKE '%$search%'
 
Сверху