2009-10-31 3 views
0

Как преобразовать функцию php в приведенный ниже код в функцию non-function.Как преобразовать функцию 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'); 
?> 

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

+9

Я думаю, лучше спросить: почему вы * хотите *, чтобы включить вашу функцию в не-функции? – hbw

ответ

8

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

1

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

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

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

Смежные вопросы