[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать поиск товаров по полю kod и optkod
Страницы: 1, 2, 3, 4, 5, 6, 7
RussianDesigner
забабахал так перенес:
Цитата
update kodsfrom_tovaruallnorm set product_id=`id`;
RussianDesigner
пометил поле product_id
user posted image

как уникальное
RussianDesigner
Связываются таблицы

user posted image


нажимаем сохранить
пишет Готово

user posted image

Таким образом, таблицы связаны, будем двигаться дальше smile.gif
RussianDesigner
Собственно теперь таблицы приведены к виду как вы и говорили
т.е. нормализация сделана.

Как теперь сделать поиск, чтобы искало как по kodу, так и по optkodу
Kusss
SELECT 
t.id, t.name_tovar
FROM
`withoutkodsform_tovaruallnorm` AS t,
`kodsfrom_tovaruallnorm` AS k
WHERE
t.id = k.product_id AND
t.kod = 'opt1k1' OR
k.optkod = 'opt1k1'
RussianDesigner
сделал такой код:

<?php

//Делаем выборку из таблиц
$q = "
SELECT
w.id, w.nametovar
FROM
`withoutkodsform_tovaruallnorm` AS w,
`kodsfrom_tovaruallnorm` AS k
WHERE
w.id = k.product_id AND
w.kod = '
$search' OR
k.optkod = '
$search' ";

$result=mysql_query( $q );

echo "<strong>Вы выбрали товар с кодом</strong> $search <strong></strong> <br>";


$myrow = mysql_fetch_assoc($result);

echo "<br>"."Это товар: ";
echo $myrow['nametovar']."<br>";
echo "Сорт: ".$myrow['namesort']."<br>";
echo "<br><br>";
echo "<b>Аналоги</b>";

?>
RussianDesigner
работает с ошибкой
почему непонятно:


так вводим персик kod pe1
всё нормально
user posted image


если ввести optkod тогоже персика opt1pe1
выдает картошку smile.gif
user posted image
RussianDesigner
странно
поменял местами
в коде

WHERE 
w.id = k.product_id AND
k.optkod = '$search' OR
w.kod = '$search' ";


ошибка пропала
Kusss
может в таблице `kodsfrom_tovaruallnorm` не правильно присвоен product_id.
Сделайте поиск в БД 'opt1pe1' . Посмотрите какой ID найдется. и гляньте что лежит в соседней таблице под этим id.
Если "Картошка Обычная" - значит таблица заполнена не правильно.
Если что другое - значит запрос не верный.
Add
Замени на "w.id = k.product_id AND (k.optkod = '$search' OR w.kod = '$search')"

А аналоги это что ?
RussianDesigner
id присвоены верно
т.к. я переносил их из соседней колонки командой
update kodsfrom_tovaruallnorm set product_id=`id`;


opt1pe1 и pe1 имеют id 32
а картошка обычная имеет id 1



Цитата
А аналоги это что ?

Аналоги это собственно то ради чего всё это и затевалось,
Нужно чтобы поиск выдавал аналоги.
Аналогом является товар, если у него совпадает optkod
Kusss
а поиск будет только по kod ?

Цитата
opt1pe1 и pe1 имеют id 32
Хм ... а разве так должно быть ? Может ты описался .
Должно быть : pe1 имеет id = 32 , а opt1pe1 имеет product_id = 32, а не id = 32

P.S. исправил id = 36 на id = 32
RussianDesigner
Цитата
Хм ... а разве так должно быть ? Может ты описался .

Дело в том, что opt1pe1 и pe1 имеют id 32
т.к. помимо product_id в той же таблице есть ещё и id
Не знаю, надо ли его было оставлять, но оно есть

вот на скриншоте видно:

таблица1
user posted image



таблица2
user posted image
Kusss
id там может пригодиться.
Ты так и не ответил, какой product_id будет при запросе
SELECT 
product_id
FROM
`kodsfrom_tovaruallnorm`
WHERE
optkod = 'opt1pe1'
RussianDesigner
Цитата
а поиск будет только по kod ?

и по kod и по optkod
RussianDesigner
такой код

$temp = "SELECT 
product_id
FROM
`kodsfrom_tovaruallnorm`
WHERE
optkod = 'opt1pe1'"
;
$res=mysql_query( $temp );
$row = mysql_fetch_assoc($res);
echo $row['product_id'];



выдает 32
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.