|
|
|
| Как подсчитать количество одинаковых значений поля cat и записать их в переменные или в массив, не знаю как лучше.
Т.е. я собираюсь использовать данный подсчёт в меню:
-процессоры (35)
Intel(20)
Amd(15)
-память (24)
Pqi (20)
Kingston (4)
-Hdd (45)
Samsung (20)
Hitachi (20)
Maxtor (5) | |
|
|
|
|
|
|
|
для: designshadow
(14.06.2009 в 18:44)
| |
<?
$result = mysql_query('SELECT COUNT() FROM `table` ');
$row = mysql_fetch_array($result);
echo $row[0];
|
| |
|
|
|
|
|
|
|
для: nikita2206
(14.06.2009 в 18:50)
| | А как узнать, например кол-во на cat=3 без лишнего запроса к БД,
echo $row[3]; - так же не получится... | |
|
|
|
|
|
|
|
для: designshadow
(14.06.2009 в 18:59)
| |
$result = mysql_query("SELECT * FROM table WHERE cat=3");
$row = mysql_num_rows($result);
echo $row;
|
| |
|
|
|
|
|
|
|
для: maxtet
(14.06.2009 в 19:29)
| | А если мне нужно узнать второе значение кол-ва на cat=5, то мне опять надо делать запрос к базе?
Реально ли сразу записать значения кол-ва всех cat в массив или в переменные, и потом работать с каждом cat по-отдельности без запросов к БД? | |
|
|
|
|
|
|
|
для: designshadow
(14.06.2009 в 19:35)
| | Реально, для этого вам достаточно прогнать ваш массив в цикле. Например:
$cat = array(1, 2, 3, 4, 5);
foreach ($cat as $val)
{
$result = mysql_query("SELECT * FROM table WHERE cat=".$val."");
$row = mysql_num_rows($result); // результат занесется в переменную
echo $row."<br>";
}
|
или
$cat = array(1, 2, 3, 4, 5);
foreach ($cat as $key => $val)
{
$result = mysql_query("SELECT * FROM table WHERE cat=".$val."");
$row[$key] = mysql_num_rows($result); // результат занесется в елемент массива
echo $row[$key]."<br>";
}
|
| |
|
|
|
|
|
|
|
для: maxtet
(14.06.2009 в 19:45)
| | Ну, допустим я прогнал его в цикле,
Далее составляю меню:
Как я достану из массива нужное значение кол-ва для каждого товара?
<ul>
<li><a href="..cat=1">процессоры (<? echo x; ?>)</a></li> //cat =1
<li><a href="..cat=2">память (Кол-во?)</a> //cat =2
<ul>
<li><a href="..cat=21">Pqi (Кол-во?)</a></li> //cat =21
<li><a href="..cat=22">Samsung (Кол-во?)</a></li> //cat =22
<li><a href="..cat=23">Kingston (Кол-во?)</a></li> //cat =23
</ul>
</li>
<li><a href="..cat=3">Hdd (Кол-во?)</a> //cat =3
<ul>
<li><a href="..cat=31">Maxtor (Кол-во?)</a></li> //cat =31
<li><a href="..cat=32">Samsung (Кол-во?)</a></li> //cat =32
</ul>
</li>
</ul> | |
|
|
|
|
|
|
|
для: designshadow
(15.06.2009 в 02:32)
| | Раз вы храните данные в базе, для начала покажите её структуру. | |
|
|
|
|
|
|
|
для: maxtet
(15.06.2009 в 03:14)
| | 1-ая таблица -товары
id, cat, title, description
2-ая таблица -категория
id, title
----------------------------------
В cat записывается значение id категории...
Было две идеи вывода многоуровнего меню:
1. циклами с запросами к базе
2. html'ом.
Решил использовать второй вариант, сделать меню на html и присвоить каждому подменю кол-во товара по категории...
Не знаю на сколько корректна теория, но время покажет :-)
Сейчас проблема в том, что не знаю как прописать для каждого подменю кол-во товаров взятых с подсчётом (cat) из БД (товары) | |
|
|
|
|
|
|
|
для: designshadow
(15.06.2009 в 03:40)
| | Вопрос по проектированию БД. А почему вы в таблице с товаром не добавите ещё одно поле, в котором будет храниться кол-во товаров с указанным названием? | |
|
|
|
|
|
|
|
для: maxtet
(15.06.2009 в 11:51)
| | потому что такое поле автоматически будет делать базу инконсистентной при изменении числа записей в таблице. | |
|
|
|
|
|
|
|
для: designshadow
(14.06.2009 в 18:44)
| | запрос
select cat,count(cat) as cnt from my_table group by cat
|
а если подробнее
<?php
$my_arr=array();
$query=mysql_query("select cat,count(cat) as cnt from my_table group by cat");
while($res=mysql_fetch_assoc($query)){
$my_arr[$res['cat']]=$res['cnt'];
}
print_r($my_arr);
?>
|
| |
|
|
|
|
|
|
|
для: ride
(15.06.2009 в 14:00)
| | Спасибо тебе, направил на путь истинный!
А если нету значения в базе на cat(109), то реально чтобы выводилось автоматом значение 0?
<ul>
<li><a href="..cat=109">процессоры (<? echo $my_arr[109]; ?>)</a></li> // как вывести так (0), а не ()?
<li><a href="..cat=2">память (<? echo $my_arr[2]; ?>)</a>
<ul> | |
|
|
|