Jump to content
Larry Ullman's Book Forums


  • Posts

  • Joined

  • Last visited

sim's Achievements


Newbie (1/14)



  1. thanks for your comment. frankly speaking, displayed results is not what the end of my goal. i'll transform the semi-result to array and then finally explode to calculate accumulated quantity. (bills of material explosión to make single level BOM.) so the aesthetic thing is not the ploblem. i agonized a few days for this and wondered whether this is possible. as far as i know it's posible, i'll break more sweats. thanks again Larry. from Korea.
  2. hi, this is another question. using recursive function you showed-up the to-do list as follow. 1. must do this 2. another task 1. subtask1 1. subsubtask1 2. suntask2 3. new task btw, is it possble to list-up with it's parent's path? that is, i'd like to list-up like this. 1. must do this 2. another task 1. subtask1 : another task * subtask1 1.subsubtask1 : another task * subtask1 * subsubtask1 2.... thanks.
  3. oops! your book has the answer in the next section. using static varible, i solved my problem. thanks for writing wonderful books..
  4. hi, i'm using your recursive function in my web app. but the problem is the infinite loop. in bills of material, user can miskatenly input parent id under child id in some depths below. so, i'd like to stop the recursive function in 10th depth. this is, my question is how do i exit from the recursive. i tried a few hours but failed. thanks in advance. <?php # Script 1.3 - view_tasks.php /* This page shows all existing tasks. * A recursive function is used to show the * tasks as nested lists, as applicable. */ // Function for displaying a list. // Receives one argument: an array. function make_list($parent) { // Need the main $tasks array: global $tasks; echo '<ol>'; // Start an ordered list. // Loop through each subarray: foreach ($parent as $task_id => $todo) { // Display the item: echo "<li>$todo"; // Check for subtasks: if (isset($tasks[$task_id])) { // Call this function again: make_list($tasks[$task_id]); } echo '</li>'; // Complete the list item. } // End of FOREACH loop. echo '</ol>'; // Close the ordered list. } // End of make_list() function. // Connect to the database: $dbc = mysqli_connect('localhost', 'username', 'password', 'test'); // Retrieve all the uncompleted tasks: $q = 'SELECT task_id, parent_id, task FROM tasks WHERE date_completed="0000-00-00 00:00:00" ORDER BY parent_id, date_added ASC'; $r = mysqli_query($dbc, $q); // Initialize the storage array: $tasks = array(); // Loop through the results: while (list($task_id, $parent_id, $task) = mysqli_fetch_array($r, MYSQLI_NUM)) { // Add to the array: $tasks[$parent_id][$task_id] = $task; } // For debugging: //echo '<pre>' . print_r($tasks,1) . '</pre>'; // Send the first array element // to the make_list() function: make_list($tasks[0]); ?>
  • Create New...