Про запросы и масивы...

Sky_Flex

Новичок
Про запросы и масивы...

Говорят если много запросов в БД - сайт тормозит...
вот я подумал что для "ходилки" не буду делать 15 запросов а сделаю так:
типо делаем один запрос:

$result = mysql_query("SELECT id, cid, name FROM tabla");

потом его надо в масив загнать(2-х мерный) типо:

$num = mysql_num_rows($result);

for($i=0; $i<$num; $i++)
{
$row = mysql_fetch_array($result);
$array['$i']['id'] = $row['id'];
$array['$i']['cid'] = $row['cid'];
$array['$i']['name'] = $row['name'];
$i++;
}

(но уже вот тут первая ошибка: привыводе потом этого масива,
for ($i=0; $i<$numet; $i++)
{
echo $array['$i']['id']." | ".$array['$i']['cid']." | ".$array['$i']['name']."<br>";
}
он выводится но все элементы в нем ка в последнем:
12 | 2 | Siemens
12 | 2 | Siemens
12 | 2 | Siemens
12 | 2 | Siemens и т.д. почему? ведь должны вроде в масив записаться из БД подряд все значения... а не только последняя строка....
)


И второй вопрос: А как мне потом в этом масиве выстроить дерево? $id - идентификатор, $cid - принадлежность той или иной записи...


в итоге из этого масива хочу получить дерево представленное в виде:
Главная >> Программы >> Для ПК >> Simens

где (Главная, Программы, Для ПК) - столбец name
а $id для ссылки на их страницы....

надеюсь меня хоть кто то понял...
 
Для "ходилки", чтобы не делать много запросов, используют nested sets
Хотя для маленьких БД это, возможно, не существенно
 
все что ВЫ написали... ну ниче не понял....

А как мне данную то проблему решить????
 
Что именно непонятно в том, что написал Фанат?
не получилось это вставить в пустой php-файл и посмотреть. что будет?
 
у меня где вы такое увидели? да у меня есть опечатка(это про 2-раза повторяющиеся $i++) да еще опечатался вот тут:

for ($i=0; $i<$numet; $i++)
{
echo $array['$i']['id']." | ".$array['$i']['cid']." | ".$array['$i']['name']."<br>";
}

а надо:

for ($i=0; $i<$num; $i++)
{
echo $array['$i']['id']." | ".$array['$i']['cid']." | ".$array['$i']['name']."<br>";
}

так почему у меня не выводится массив то??7 точнее он выводится... но записан он не так как надо...

$result = mysql_query("SELECT id, cid, name FROM tabla");
$num = mysql_num_rows($result);

for($i=0; $i<$num; $i++)
{
$row = mysql_fetch_array($result);
$array['$i']['id'] = $row['id'];
$array['$i']['cid'] = $row['cid'];
$array['$i']['name'] = $row['name'];
}

в БД у меня данные
10 0 samsung
11 0 SonyEricsson
12 10 Siemns

при запросе из БД в масив тоже так должно все занестись вроде... а заносит только:
12 10 Siemns
12 10 Siemns
12 10 Siemns

В чем ошибка???
 
будь добр, если тебя не затруднит, сделай такое одолжение - исполни код, который я тебе написал выше.
 
ну и что??? выводит 1... исполнять то его зачем , и так поятно..=)

у меня то такого нет! вроде?или есть?
 
ты обманываешь дядю.
как не стыдно?
а ещё пионер, наверное
 
=) ну да ... выводит $i...

извиняюсь.. понял ошибку... ну а как в масиве:
id cid name
1 | 0 | Program
2 | 0 | Fareware
3 | 1 | for_PC
4 | 2 | Siemens
5 | 3 | Samsung
17 | 3 | Siemens

вывести из него Program >> for_PC >> Samsung ???
ну т.е. в масиве определить какая категория кому пренадлежит?? как?
 
> ну т.е. в масиве определить какая категория кому пренадлежит?? как?
По cid
 
это я понимаю... тут смотрим ид там сид потом его ид и ищем такой же но сид...

А КАК ЭТО ДЕЛАТЬ-ТО??? я про код??? вроде ман читал... не понял...
 
> А КАК ЭТО ДЕЛАТЬ-ТО???
В цикле. Например, используя [m]while[/m]. Вообще вывод пути начинают с конца. Т.е. по id текущей категории берут id родителя (cid), затем берут id родителя и т.д, пока cid != 0
 
Сверху