Поиск в MySql по производителям в данной подподгруппе

Vladis_OK

Новичок
Поиск в MySql по производителям в данной подподгруппе

Добрый день профи,

есть поиск с вводом слов - ищет в базе в определённой таблице:

$query = "SELECT id, id_type, id_subtype, title, descr, made FROM wares WHERE lang='$lang' && (title LIKE '%$search%' || descr LIKE '%$search%' || made LIKE '%$search%') ORDER BY id DESC";

надо организовать поиск по производителям в данной подподкатегории
я сделал так:
на странице поиска

// --- search
echo "<table width='420' border=0 align='center'>";
echo "<form name='formSearch' action=index.php?lang=$lang&p=" . $PAGE['SEARCH2'] . " method=post>";
echo "<tr>\n";
echo "<td width='160'><font color=\"gray\"></>" .$LNG['WARES_SEARCHP']. "</font></td>";
echo " <td width=\"45\"><label>\n";
echo " <select name=\"search\" id=\"search2\">\n";
echo " <option value=0 selected>" .$LNG['WARES_VIBOR']. "</option>\n";
echo " <option value=Ariston>------ Ariston ------</option>\n";
echo " <option value=Siemens>------ Siemens ------</option>\n";
echo " </select>\n";
echo " </label></td>\n";
echo "<td width='118'><input type=image onMouseOver='MM_swapImage(\"Image1\",\"\",\"img/$lang/poisk.jpg\",1)' onMouseOut='MM_swapImgRestore()' src='img/$lang/poisk2.jpg' name='Image1' width='70' height='20' border='0' id='Image1'></a></td>";
echo " </tr>\n";
echo " </tbody>\n";
echo " </form>\n";
echo " </table>";
// end search

Далее добавил в администрирование по товарам специальное поле ( Для указания производителя - $pro )

и написал код:

$query = "SELECT id, id_type, id_subtype, title, pro, made FROM wares WHERE lang='$lang' && pro='Siemens' && (title LIKE '%$search%' || pro LIKE '%$search%') ORDER BY pro DESC";
Вобщем не буду пока выкладывать весь код ( у Вас не приветствуеться )

Там организованно - после поиска открытие определённой страницы с выводом ссылок (title) на страницу в подподкатегорию в подробнее

Фишка такая - не могу связать поиск по производителю с определённой подподгруппой
 

Bitterman

Новичок
не могу связать поиск по производителю с определённой подподгруппой
Что значит "связать"? Проблема в запросе или в коде? Если в запросе, то выложи сам запрос, а не ПХП-код.

Если попробовать поиграть в телепата, то, возможно, в условии WHERE надо указать конкретный id_subtype?
 

Vladis_OK

Новичок
Автор оригинала: Bitterman
Что значит "связать"? Проблема в запросе или в коде? Если в запросе, то выложи сам запрос, а не ПХП-код.

Если попробовать поиграть в телепата, то, возможно, в условии WHERE надо указать конкретный id_subtype?
1. Проблема в правильном запросе: типо надо pro=' $id_subtype'
2. Я вобще почемуто думаю, что может не надо делать специальный поиск, а может достаточно проще
организовать на странице сайта вертикальное меню с уже заготовленными линками - где так-же как на
кнопке для открытия страницы вставить код с запросом?

-~{}~ 21.05.07 18:11:

Автор оригинала: Vladis_OK
1. Проблема в правильном запросе: типо надо pro=' $id_subtype'
2. Я вобще почемуто думаю, что может не надо делать специальный поиск, а может достаточно проще
организовать на странице сайта вертикальное меню с уже заготовленными линками - где так-же как на
кнопке для открытия страницы вставить код с запросом?
Ставлю вопрос иначе, как отсортировать запрос для вывода товаров только SIEMENS или только ARISTON
вот код для запроса и вывода всех товаров относящихся к конкретной подподгруппы:
PHP:
$iTotalRecords = checkQuery("SELECT id FROM wares WHERE wares.lang='$lang' && wares.id_subtype='$id_subtype'");
$page = @$HTTP_GET_VARS['page']; if(!$page) $page = 0;
$iTotalPages = intval($iTotalRecords / $DEF['PICT_PER_PAGE']) + ($iTotalRecords % $DEF['PICT_PER_PAGE'] ? 1 : 0);

$query = "SELECT wares.id, wares.id_subtype, wares.title, wares.prev1, wares.popup1, wares.price, wares.pro, wares.made, subtypes.title " .
           "FROM wares, subtypes " .
          "WHERE wares.lang='$lang' && wares.id_type='$id_type' && wares.id_subtype='$id_subtype' && wares.id_subtype=subtypes.id " .
       "ORDER BY wares.pro, wares.date DESC, wares.id DESC LIMIT " . ($page * $DEF['PICT_PER_PAGE']) . ", " . $DEF['PICT_PER_PAGE'];

if( ($r = mysql_query($query)) && ($iAff = mysql_affected_rows()) ) {
        for($i = 0; $i < $iAff; $i++) {
                list($id, $id_subtype, $title, $prev, $popup, $price, $made, $stitle, $pro) = mysql_fetch_row($r);
                $variables = array("title", "stitle");
                magic_quotes_decode();
                $stitle = splitTextIntoLang($stitle, "##", $lang);
                $sLink = "<a href=index.php?lang=$lang&p=$p&p2=read&id_type=$id_type&id_subtype=$id_subtype&id=$id>";

                if(fileExists($prev)) {
                        $prev = "<img src='" . $prev . "' border=0 width=" . $DEF['WARE_PREV_W'] . " height=" . $DEF['WARE_PREV_H'] . " alt=''>";
                
		}
                else {
                        $prev = "";
                }

                if($i == 0) {
                        // title
                        echo "<div style='margin: 20px 20px;'>\n";
			echo "<div class=title>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=index.php?lang=$lang&p=$p&id_type=$id_type>" . $LNG['WARES_TYPES'][$id_type] . "</a>&nbsp;/&nbsp;" . $stitle . "</div>";
                        echo "</div>\n";
// --- search1
echo "<table width='420' border=0 align='center'>";
echo "<form name='formSearch' action=index.php?lang=$lang&p=" . $PAGE['SEARCH2'] . " method=post>";
echo "<tr>\n";
echo "<td width='160'><font color=\"gray\"></>" .$LNG['WARES_SEARCHP']. "</font></td>";
echo "          <td width=\"45\"><label>\n";
echo "            <select name=\"search\" id=\"search2\">\n";
echo "              <option value=0 selected>" .$LNG['WARES_VIBOR']. "</option>\n";
echo "              <option value=Ariston>------ Ariston ------</option>\n";
echo "              <option value=Siemens>------ Siemens ------</option>\n";
echo "            </select>\n";
echo "          </label></td>\n";
echo "<td width='118'><input type=image onMouseOver='MM_swapImage(\"Image1\",\"\",\"img/$lang/poisk.jpg\",1)' onMouseOut='MM_swapImgRestore()' src='img/$lang/poisk2.jpg' name='Image1' width='70' height='20' border='0' id='Image1'></a></td>";
echo "        </tr>\n";
echo "      </tbody>\n";
echo "    </form>\n";
echo "  </table>";
// end search 1         


	if($iTotalPages > 1) {
		echo "<div style='margin: 20px 20px 10px; padding: 4px 0px; border: 1px solid #DDDDDD; background-color: #FFFFFF; width: 100%;'align=\"center\">\n";
		 displayNav("index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype", $iTotalPages, $page, $DEF['PICT_PER_PAGE'], $iTotalRecords);
		echo "</div>\n";
	}
                      echo "<table width=100% border=0 cellspacing=10 cellpadding=10 align=center>\n";
              }


                if($i % $DEF['PICT_PER_ROW'] == 0) echo "<tr>\n";
                echo "<td width=250 bgcolor=#ffffff align=center>\n";
                if($prev) {
                        $prev = $sLink . $prev . "</a>";
                }
                if($prev) echo $prev;
                else echo "<img class=imgbrd src=img/des/nopic.gif border=0 width=" . $DEF['WARE_PREV_W'] . " height=" . $DEF['WARE_PREV_H'] . " alt=''><br>";
echo "<div style=''align=\"center\">\n";
echo      $sLink . "<b>" . $title . "</a></b><br>\n";
echo "    <font color=\"gray\"></>&nbsp;" .$made. "</font>\n";
echo "</div>\n";

		if($price > 0) {
                        echo "<div style='margin: 5px 10px 5px;'align=\"center\">\n";
                        echo "<font color=\"red\"<b></>" .$LNG['WARES_PRICE'] . " : Ls " . sprintf("%0.2f", $price) . "</b>";
echo "<br>&nbsp;\n";
                        echo "$sLink<b><u><font color=\"blue\">" .$LNG['MM_pod']. "</font></u></a>\n";
                        echo "</div>\n";
                }


        }
        echo "</table>\n";
}
	if($iTotalPages > 1) {
		echo "<div style='margin: 20px 20px 10px; padding: 4px 0px; border: 1px solid #DDDDDD; background-color: #FFFFFF; width: 100%;'align=\"center\">\n";
		 displayNav("index.php?lang=$lang&p=$p&id_type=$id_type&id_subtype=$id_subtype", $iTotalPages, $page, $DEF['PICT_PER_PAGE'], $iTotalRecords);
		echo "</div>\n";
	}
echo "        <br/>\n";
	// back
	echo "<div style='padding: 10px 0px 0px 10px; margin-top: 10px; border-top: 1px solid #EEEEEE;'align=center>\n";
	echo "<a href=\"javascript:history.back();\">" . $LNG['WARES_BACK'] . "<br></a>";
	echo "</br></div>\n";
 

Bitterman

Новичок
ужос.
Что значит
отсортировать запрос
?
Ты хочешь написать запрос, который бы отбирал товары, удовлетворяющие твоему условию? Тогда запости структуру таблицы (или таблиц), и запрос, которым ты пытаешься это сделать. И НЕ НАДО постить ПХП-код, если у тебя вопрос по MySQL!!!
 

Vladis_OK

Новичок
Автор оригинала: Bitterman
ужос.
Что значит

?
Ты хочешь написать запрос, который бы отбирал товары, удовлетворяющие твоему условию? Тогда запости структуру таблицы (или таблиц), и запрос, которым ты пытаешься это сделать. И НЕ НАДО постить ПХП-код, если у тебя вопрос по MySQL!!!
======================================================
первая таблица subtypes (гпуппы товаров)
+----+-----------+-------+---------+
| id | id_title | title | ord |
+----+-----------+-------+---------+
| 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |
| 3 | 3 | 3 | 3 |
+----+-----------+-------+---------+

вторая таблица wares (подгпуппы товаров)
+-----+-----------+----------+------------------+----------+....+---------+
| id | lang | id_type | id_subtype | prev1 |....| ord |
+-----+-----------+----------+------------------+----------+....+---------+
| 1 | ru | 1 | 1 | pic/w/...|....| 1 |
| 2 | en | 2 | 2 | pic/w/...|....| 2 |
| 3 | ru | 3 | 3 | pic/w/...|....| 3 |
+-----+-----------+----------+------------------+----------+....+---------+

третяя таблица wares2 (подподгпуппы товаров)
+-----+-----------+----------+------------------+-------------+----------------+....+---------+
| id | lang | id_type | id_subtype | id_foto | prev_foto |....| ord |
+-----+-----------+----------+------------------+-------------+----------------+....+---------+
| 1 | ru | 1 | 1 | 1 | pic/w/... |....| 1 |
| 2 | en | 2 | 2 | 2 | pic/w/... |....| 2 |
| 3 | ru | 3 | 3 | 3 | pic/w/... |....| 3 |
+-----+-----------+----------+------------------+-------------+----------------+....+---------+
Запрос:

$query = "SELECT wares.id, wares.id_subtype, wares.title, wares.prev1, wares.popup1, wares.price, wares.pro, wares.made, subtypes.title " .
"FROM wares, subtypes " .
"WHERE wares.lang='$lang' && wares.id_type='$id_type' && wares.id_subtype='$id_subtype' && wares.id_subtype=subtypes.id " .
"ORDER BY wares.pro, wares.date DESC, wares.id DESC LIMIT " . ($page * $DEF['PICT_PER_PAGE']) . ", " . $DEF['PICT_PER_PAGE'];
 

Bitterman

Новичок
И? Что не работает-то? Ты можешь, наконец, сформулировать вопрос простым, понятным русским языком, без тонн кода? По какому полю тебе требуется сделать сортировку? Ты упоминал про какие-то ARISTON и SIEMENS, по которым тебе нужно отсортировать. Где они в твоих таблицах? И приведи, наконец, сам запрос, а не ПХП-код, который этот запрос возвращает. Заодно поясни, что ты хочешь, чтобы этот запрос возвращал и что он возвращает в текущем виде.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Vladis_OK
[m]mysql_error[/m] - ругается или молчит(возвращает нулевой результат)?

1Если ругается отлаживаете запрос

2. К сожалению, без реального запроса Вам вряд-ли сможет кто-нибудь чтото подсказать...
 

Vladis_OK

Новичок
Автор оригинала: Mr_Max
Vladis_OK
[m]mysql_error[/m] - ругается или молчит(возвращает нулевой результат)?

1Если ругается отлаживаете запрос

2. К сожалению, без реального запроса Вам вряд-ли сможет кто-нибудь чтото подсказать...
2 Bitterman & Mr_Max

Подробнее
Есть уже законченный сайт - полностью рабочий
Но заказчику ещё захотелось на странице с подподгруппами сделать поиск ( сортировку ) по производителям
Производителей пока только два ARISTON и SIEMENS (планируеться увеличить т.е. надо сразу это учесть)

Мои действия: создал поле:
-----------------------------
pro varchar(100) no
-----------------------------
в таблице wares

В администрировании сайта добавил поле pro для ввода Производителей
На странице вывода подподгруп товаров сделал меню:
---------------------------------------------------------------------------------
Поиск по производителям Выбрать производителя Поиск
--------- Ariston -----------
--------- Siemens ----------
---------------------------------------------------------------------------------

В имеющейся запрос добавил запись pro:
----------------------------------------------------------
"SELECT wares.id, wares.id_subtype, wares.title, wares.prev1, wares.popup1, wares.price, wares.pro, wares.made, subtypes.title " .
"FROM wares, subtypes " .
"WHERE wares.lang='$lang' && wares.id_type='$id_type' && wares.id_subtype='$id_subtype' && wares.id_subtype=subtypes.id " .
"ORDER BY wares.pro, wares.date DESC, wares.id DESC LIMIT " . ($page * $DEF['PICT_PER_PAGE']) . ", " . $DEF['PICT_PER_PAGE'];
--------------------------------------------------------------------------------------------------------------------------------------------
в WHERE пока не въезжаю как сформулировать и в меню непонятно куда линк
 

Bitterman

Новичок
в WHERE пока не въезжаю как сформулировать и в меню непонятно куда линк
А что тебя смущает? В меню скорее всего линка никакого не надо, просто делаешь на странице выпадающее меню и передаешь выбранный параметр через GET.
 

Bitterman

Новичок
По меню Плиз пример
Пример чего тебе нужен? Формы с выпадающим меню?
А в WHERE ничего ненадо?
Ты свои запросы до этого сам писал? Ты же в своем запросе отбираешь товары по языку, типу, подтипу и т. д. Чем текущая проблема отличается от этих, уже решенных?
 

Vladis_OK

Новичок
параметр через GET

-~{}~ 22.05.07 13:27:

В данный момент сервак упал - вобще ни чего не вижу
 

Vladis_OK

Новичок
Автор оригинала: totamon
...прикольно:) да Вы за деньги программите...
2 totamon

Я не понял - это ты пошутил, что ли?

-~{}~ 24.05.07 15:28:

Продолжем общение
Я cделал так:
На странице выпадающее меню
--------------------------------------------
echo " <table width=\"173\" align=\"center\" border=\"0\">\n";
echo "<form action=wares.pro.php method=post>";
echo " <tbody>\n";
echo " <tr>\n";
echo " <td width=\"45\"><label>\n";
echo "<SELECT NAME=proiz>\n";
echo "<option value=\"-----------\">Выбрать производителя</option>\n";
echo "<option value=\"Ariston\" >Ariston</option>\n";
echo "<option value=\"Siemens\" >Siemens</option>\n";
echo " </select>\n";
echo " </label></td>\n";
echo " <td width=\"118\"><input id=\"Image1\"\n";
echo " onmouseover='MM_swapImage(img/$lang/poisk.jpg&quot;,1)'\n";
echo " onmouseout=\"MM_swapImgRestore()\" type=\"image\" height=\"20\" width=\"70\"\n";
echo " src=\"img/$lang/poisk2.jpg\" border=\"0\"\n";
echo " name=\"Image1\" />\n";
echo " </A></td>\n";
echo " </tr>\n";
echo " </tbody>\n";
echo " </form>\n";
echo " <tr>\n";
echo " <td></TBODY></td>\n";
echo " </tr>\n";
echo " </table>";

Далее написал в wares.pro.php (чтобы протестить) :

------------------------------------
$pro = $_POST['proiz'];
------------------------------------

ну и запрос:

-----------------------------------
$query = "select * FROM wares WHERE pro='$pro';
-----------------------------------

Чего-то не тестится
 

Vladis_OK

Новичок
Автор оригинала: Mozart
А что по вашему на ней должно быть?
Все записи в таблице wares в столбце pro по выбору через $_POST['proiz'] где $_POST['proiz'] = $pro

изменил:
-------------------------
$query = "SELECT pro FROM wares WHERE pro='$pro'";
--------------------------

всё равно пусто
 
Сверху