Пишу поиск по бд, принцип следующий: сначала собираю нужную информацию из нескольких таблиц, а потом по получившейся таблице делаю поиск, хотел пойти через создание временной таблицы, но mysql не разрешает делать к ней более одного запроса одновременно, поэтому приходится работать с динамически создаваемой и удаляемой таблицей. написал следующий запрос:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $charR = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'V', 'X', 'Y', 'Z');
- CREATE TABLE " .$nameTMd ." SELECT b.ID, b.part_name, b.part_original_number, b.part_vendor_number, c.vendor_name, d.type_name, g.model_name, f.name_mark, e.i_name, e.i_width, e.i_height, c.vendor_link, b.price_1
- FROM t_model_part AS a
- LEFT JOIN t_parts AS b
- ON b.ID = a.ID_part
- LEFT JOIN t_vendor_firms AS c
- ON c.ID = b.ID_vendor_firms
- LEFT JOIN t_type_parts AS d
- ON d.ID = b.ID_type_parts
- LEFT JOIN t_image AS e
- ON e.ID = b.part_foto
- left join t_models as g
- ON a.ID_model = g.ID
- left join t_marks as f
- ON g.ID_mark = f.ID;
- SELECT * FROM " .$nameTMd ." WHERE part_name like '%" .$_POST['search'] ."%'
- UNION
- SELECT * FROM " .$nameTMd ." WHERE part_original_number like '%" .$_POST['search'] ."%'
- UNION
- SELECT * FROM " .$nameTMd ." WHERE part_vendor_number like '%" .$_POST['search'] ."%'
- UNION
- SELECT * FROM " .$nameTMd ." WHERE vendor_name like '%" .$_POST['search'] ."%'
- UNION
- SELECT * FROM " .$nameTMd ." WHERE type_name like '%" .$_POST['search'] ."%'
- UNION
- SELECT * FROM " .$nameTMd ." WHERE model_name like '%" .$_POST['search'] ."%'
- UNION
- SELECT * FROM " .$nameTMd ." WHERE name_mark like '%" .$_POST['search'] ."%'";
- $result_Serch = $objParts->ConnectDb($sqlSearch);
- if(!$result_Serch)
- {
- echo "Поисковый запрос не удался... Код ошибки: " .mysql_errno() ." содержание: " .mysql_error();
- exit();
- }