Это много встроенных в то время как петли плохо? - PullRequest
0 голосов
/ 10 июля 2011

У меня есть цикл while, который получает сообщения от пользователей и отображает их (ниже).Я хотел бы иметь возможность отображать комментарии под сообщениями.Проблема в том, что сообщения генерируются через цикл while.Чтобы генерировать комментарии под каждым постом, мне нужно будет вставить циклы while.Я не знаю, возможно ли это или правильный подход.Любая помощь приветствуется.

код:

<?php
$get=mysql_query("SELECT * FROM table WHERE id='$id' ORDER BY rank DESC");
    while ($row=mysql_fetch_assoc($get)){
             $post=$row['post'];
            echo "<div class='postcontainer'>$post</div>";
            echo //i need the comments to go here
            }
  ?>

Ответы [ 3 ]

2 голосов
/ 10 июля 2011

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

1 голос
/ 10 июля 2011

Да, в PHP очень возможно вложить циклы любого типа. Фактически, алгоритм, используемый для общей «пузырьковой сортировки», включает в себя использование вложенного цикла.

http://en.wikipedia.org/wiki/Bubble_sort

Так что не беспокойтесь там. Это может быть сложно, хотя ...

Быстрый поиск показывает пример ручной сортировки пузырьков в PHP

http://www.metalshell.com/source_code/118/Bubble_Sort.html

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

1 голос
/ 10 июля 2011

Нет причин, по которым вы не должны вкладывать циклы while, и это предпочтительный метод для многих операций. Я видел, как жизнеспособный код прошел пять или шесть циклов. Единственное отличие состоит в том, что для больших объемов данных это будет медленнее, поскольку вы повышаете эффективность с O(n) до O(n^2).

Я всегда использую метод, чтобы он сначала работал, а потом оптимизирую.

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