|
|
|
|
|
для: Dizels
(18.03.2010 в 20:42)
| | таблица с названиями категорий как формируется, а не таблица с товарами? | |
|
|
|
|
|
|
|
для: Slo_Nik
(18.03.2010 в 20:22)
| | >как формируются записи в таблице с названиями категорий?
Примерно вот так:
// Парсим файл
$xml = simplexml_load_file($filename);
foreach ($xml->item as $item)
{
$tov_rubr = $item->tov_rubr;
foreach ($tov_rubr as $rubr)
{
$rrr = $tov_rubr->rubr;
}
$rrr = iconv("UTF-8", "windows-1251", $rrr);
$y = "INSERT INTO pen VALUES (NULL,
'$tov_id',
'$tov_name',
'$rrr')";
if(mysql_query($y))
{
echo "Данные добавлены в БД<br>";
}
|
| |
|
|
|
|
|
|
|
для: Dizels
(18.03.2010 в 19:21)
| | >увы, но не могу, так как данные в этой таблице формируются из xml-файла и там записано именно название рубрики, а не ее порядковый номер.
во-первых, с этого и надо было начинать...
во-вторых, ну и что, что отсутствует id категории? как формируются записи в таблице с названиями категорий? | |
|
|
|
|
|
|
|
для: Dizels
(18.03.2010 в 19:10)
| | >как в таблицу с товарами добавить столбец id_category ?
как и любой другой столбец...
> Ведь тут нужно тоже самое сравнение проводить с таблицей категорий по названию категории.
у каждой категории товара есть свой id, уникальный ключ, неповторяемый...
если удалить категорию из базы, потом занести новую категорию, то id новой категории ни когда не будет равным удалённому id...
при этом, название категории может измениться, прийдётся менять содержимое столбца category в таблице товаров... | |
|
|
|
|
|
|
|
для: Dizels
(18.03.2010 в 19:10)
| | >вместо category добавить столбец с именем id_категории
увы, но не могу, так как данные в этой таблице формируются из xml-файла и там записано именно название рубрики, а не ее порядковый номер. Именно из-за этого собственно вся проблема и началась, что нужно преобразовать имеющиеся данные. | |
|
|
|
|
|
|
|
для: Slo_Nik
(18.03.2010 в 16:46)
| | Тогда вопрос такой:
как в таблицу с товарами добавить столбец id_category ? Ведь тут нужно тоже самое сравнение проводить с таблицей категорий по названию категории. Как это реализовать? И собственно нужен ли тогда этот столбец? | |
|
|
|
|
|
|
|
для: Dizels
(18.03.2010 в 15:49)
| | в таблицу с товарами, добавить id_категори, вместо category добавить столбец с именем id_категории
Таблица категорий:
id_category name
1 category1
2 category2
3 category3
|
Таблица товаров:
id name id_category
1 tovar1 3
2 tovar2 1
3 tovar3 1
4 tovar4 2
5 tovar5 2
|
вот тут id_category и есть вторичный ключ.
в таблице с категориями id_category является первичным ключом и устанавливает уникальность записи.
при таком разкладе, при попытке вывести наименование товаров, для первой категории выведет 1 товар для второй и третьей по две позиции товара.
и ни какой путаницы не произойдёт...
естественно, что первичный ключ таблицы категорий id_category должен быть снабжён атрибутом AUTO_INCREMENT
Тогда при переходе по ссылке
echo "<a href='index.php?id=".$f['id_category']."'>".$f['name']."</a><br>";
|
на странице index делаем запрос к базе
if($_GET['id_category']){
$query= "SELECT * FROM `table` WHERE `id_category` = '".$_GET['id']."'";
}
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(18.03.2010 в 15:30)
| | Можно подробнее?
Сейчас у меня: 2 таблицы - с категориями и товарами.
Таблица категорий:
id name
1 category1
2 category2
3 category3
|
Таблица товаров:
id name category
1 tovar1 category1
2 tovar2 category2
3 tovar3 category1
4 tovar4 category3
5 tovar5 category1
|
Как добавить вторичный ключ?
P.S. то ли я чего-то не понимаю, то ли вы неправильно понимаете что я пишу) | |
|
|
|
|
|
|
|
для: Dizels
(18.03.2010 в 15:00)
| | сделай как говорил Trianon, да и я тебе в своём ответе писал про id _рубрики.
в таблице с категориями добавь вторичный ключ, который будет равный id _рубрики и при выборке из БД ориентируйся на это значение. так будет проще...
если я правильно понял, то при передачи через get значения id в условии WHERE проверяй id_рубрики к которой принадлежит категория
if($_GET['id']){
$query= "SELECT * FROM `table` WHERE `id` = '".$_GET['id']."'";
}
|
| |
|
|
|
|
|
|
|
для: Dizels
(18.03.2010 в 13:48)
| |
// Составляем список категорий
$zapros = "SELECT DISTINCT rub FROM pen";
if($p = mysql_query($zapros))
{
// Так как запрос возвращает несколько строк, применяем цикл
while($gf = mysql_fetch_array($p))
{
$cat_name = $gf['rub'];
$cat_nam = mysql_real_escape_string($cat_name);
print $cat_name;
// добавляем рубрику
$ty = "INSERT INTO pen_cat VALUES (NULL, '$cat_nam')";
if(mysql_query($ty))
{
echo "Рубрики добавлены в БД<br>";
}
}
}
|
Вот.
Дальше в файле вывода рубрик формирую ссылки:
$zapros = "SELECT * FROM pen_cat";
if($p = mysql_query($zapros))
{
// Так как запрос возвращает несколько строк, применяем цикл
while($f = mysql_fetch_array($p))
{
echo "<a href='index.php?id=".$f['id']."'>".$f['name']."</a><br>";
}
}
|
В index.php проверяю на наличие передачи данных:
Но вот собственно как поступать дальше? | |
|
|
|
|