Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Организация БД
 
 автор: Рома   (26.06.2009 в 23:24)   письмо автору
 
 

Есть таблица с двумя полями, таблица рубрик она у меня. (table1)
(int)id
(str)описание
(str)подробное описание

Есть вторая таблица, где содержится сама информация. (table2)
(int)id - чтоб знать к какой рубрике она относится
(str)информация 1
(str)информация 2
(str)информация 3
(str)информация n

Вот в чем загвоздка.
Делаю запрос

$sql="SELECT * FROM table1";
$result=mysql_query($sql, $msconnect);
if(mysql_num_rows($result)>0)
{
$arr="";
while($row=mysql_fetch_array($result))
{
$pn=$row['id'];
$name=$row['описание'];

$arr.="<a href=\"?kat=".$id."\">".$name."</a> (Здесь хочу видеть количество)</div>";
}
}

как мне можно добиться того, чтобы в цикле происходил еще один запрос, который давал бы мне цифру количества записей данной рубрики.
пробовал так

$sql="SELECT * FROM table1";
$result=mysql_query($sql, $msconnect);
if(mysql_num_rows($result)>0)
{
$arr="";
while($row=mysql_fetch_array($result))
{
$sql="SELECT * FROM table2 where id like '%".$id."%'";
$result=mysql_query($sql, $msconnect);
$posts=mysql_num_rows($result);

$pn=$row['id'];
$name=$row['описание'];

$arr.="<a href=\"?kat=".$id."\">".$name."</a> ($post)</div>";
}
}

В этом случае выводит только одну ссылку. Видимо так нельзя делать. Да и 62 запроса не многовато ли?

Выслушаю любой совет, если надо поменяю структуру. Главное, чтоб это было максимально оптимально.

  Ответить  
 
 автор: Trianon   (26.06.2009 в 23:57)   письмо автору
 
   для: Рома   (26.06.2009 в 23:24)
 

Это у Вас критерий оптимума такой - текст без отступов писать?

P.S. 50 процентов ответа (обсцентная составляющая) благоразумно вырезана автором.
P.P.S. маленькая подсказка.
В строке while($row=mysql_fetch_array($result)) значение переменной $result используется не один раз, а много.
По Вашим словам - 62 раза.
P.P.P.S. А переменная $post не определена вообще.

  Ответить  
 
 автор: Рома   (27.06.2009 в 00:41)   письмо автору
 
   для: Trianon   (26.06.2009 в 23:57)
 

>Это у Вас критерий оптимума такой?

Не, в смысле оптимально ли 62 раза к базе ходить?

>Текст без отступов писать?

Это у меня привычка с детства, как бороться не знаю.

>P.P.S. маленькая подсказка.
>В строке while($row=mysql_fetch_array($result)) значение переменной $result используется не один раз, а много.

Вот спасибо, а я не доглядел. Это и была причина всех моих бед.

  Ответить  
 
 автор: Trianon   (27.06.2009 в 00:52)   письмо автору
 
   для: Рома   (27.06.2009 в 00:41)
 

>>Текст без отступов писать?
>Это у меня привычка с детства, как бороться не знаю.

Вы с детства пишете программный код? На фортране чтоли?

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования