Как преобразовать функцию PHP в не-функцию? - PullRequest
0 голосов
/ 31 октября 2009

Как я могу преобразовать функцию php в приведенном ниже коде в не-функцию.

<?php
require_once ('./mysqli_connect.php'); // Connect to the db.

function make_list ($parent)
{
    global $tasks;
    echo '<ol>';
    foreach ($parent as $task_id => $todo)
    {
        echo "<li>$todo";
        if (isset($tasks[$task_id]))
        { 
            make_list($tasks[$task_id]);
        }
        echo '</li>';
    }

    // Close the ordered list:
    echo '</ol>';
}

$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT task_id, parent_id, task FROM tasks WHERE date_completed='0000-00-00 00:00:00' ORDER BY parent_id, date_added ASC");

if (!$dbc)
{
    // There was an error...do something about it here...
    print mysqli_error();
} 
$tasks = array();

while (list($task_id, $parent_id, $task) = mysqli_fetch_array($dbc, MYSQLI_NUM))
{
    // Add to the array:
    $tasks[$parent_id][$task_id] =  $task;
}

make_list($tasks[0]);

mysqli_close(); // close the connection

// Include the html footer
include('./includes/footer.html');
?>

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

Ответы [ 2 ]

8 голосов
/ 31 октября 2009

Первый: Вы не можете преобразовать рекурсивную функцию в код спагетти простым способом.
Второй : Нет смысла это делать. Разделите свою логику, действия на функции, а также логику и представление данных. Не спамите свой код с помощью HTML-тегов. Используйте какой-то шаблонный механизм.

1 голос
/ 31 октября 2009

в дополнение к ответу Эренона (который я полностью поддерживаю, он уже высказал мнение, почему ваш вопрос ведет в неправильном направлении):

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

и не говорите с базой данных как суперпользователь ..

...