Jump to content
Larry Ullman's Book Forums

Search the Community

Showing results for tags 'list spills back on itself'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Single Editions
    • Modern Javascript: Develop and Design
    • The Yii Book
    • Effortless Flex 4 Development
    • Building a Web Site with Ajax: Visual QuickProject
    • Ruby: Visual QuickStart Guide
    • C++ Programming: Visual QuickStart Guide
    • C Programming: Visual QuickStart Guide
    • Adobe AIR: Visual QuickPro Guide
  • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (5th Edition)
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (4th Edition)
    • PHP 6 and MySQL 5 for Dynamic Web Sites: Visual QuickPro Guide (3rd Edition)
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (2nd Edition)
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (1st Edition)
  • PHP for the Web: Visual QuickStart Guide
    • PHP for the Web: Visual QuickStart Guide (5th Edition)
    • PHP for the Web: Visual QuickStart Guide (4th Edition)
    • PHP for the Web: Visual QuickStart Guide (3rd Edition)
    • PHP for the World Wide Web: Visual QuickStart Guide (2nd Edition)
    • PHP for the World Wide Web: Visual QuickStart Guide (1st Edition)
  • Effortless E-commerce with PHP and MySQL
    • Effortless E-Commerce with PHP and MySQL (2nd Edition)
    • Effortless E-Commerce with PHP and MySQL
  • PHP Advanced: Visual QuickPro Guide
    • PHP Advanced and Object-Oriented Programming: Visual QuickPro Guide (3rd Edition)
    • PHP 5 Advanced: Visual QuickPro Guide (2nd Edition)
    • PHP Advanced: Visual QuickPro Guide
  • MySQL: Visual QuickStart Guide
    • MySQL: Visual QuickStart Guide (2nd Edition)
    • MySQL: Visual QuickStart Guide (1st Edition)
  • Other
    • Announcements
    • Newsletter, Blog, and Other Topics
    • Forum Issues
    • Social

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 1 result

  1. I originally posted this under the existing multidimensional array posting, but it ought to be here. I'm having trouble sorting a database driven multidimensional array. I'm taking my values from a select statement that returns all of the values in the business_type table. The function writing the array looks like this, complete with comments blocking out other things I've tried. static function arrayListerAll(PDO $pdo){ $q = "SELECT busTypeID, name, description, buttonType, masterType FROM business_type WHERE busTypeID != 1 ORDER BY busTypeID"; try { $bt = array(); $result = $pdo->query($q); if ($result->rowCount()== 0){ throw new Exception("There was an error retrieving the results from the database."); } $result->setFetchMode(PDO::FETCH_ASSOC); //while (list($busTypeID, $name, $description, $buttonType, $masterType) = $result->fetch()){ while ($row = $result->fetch()){ $bt[$row['masterType']][$row['busTypeID']] = array('name' => $row['name'], 'description' => $row['description'], 'buttonType' => $row['buttonType']); //$bt[$masterType][$busTypeID] = $name; //$bt[$row['busTypeID']] = array('name' => $row['name'], 'description' => $row['description'], 'buttonType' => $row['buttonType'], 'busTypeID' => $row['busTypeID'], 'masterType' => $row['masterType']); } /*function arraySorter($x, $y){ return ($x['masterType'] > $y['masterType']); } usort($bt, 'arraySorter');*/ return $bt; } catch (PDOException $ex) { print $ex->getMessage(); } } *********This returns the array, which is used by another function that is called in a view. <div id="testDiv" style="color: white"> <?php $bt = BusinessType::arrayListerAll($pdo); print_r($bt); AdminArrayWriter::makeList($bt, $bt); //foreach ($bt as $busTypeID){ // print_r($busTypeID) . "<br>"; //} /*function makeList($parent) { global $bt; //echo '<ol>'; foreach ($parent as $busTypeID => $type) { //echo "<li>" . $type['name']. " ". $type['buttonType']; //echo "<li>$type"; if (isset($type['name'])) { AdminArrayWriter::listBusTypeWriter($type['name'], $type['description'], $type['buttonType']); } if (isset($bt[$busTypeID])) { makeList($bt[$busTypeID]); } //echo "</li>"; } //echo "</ol>"; }*/ // makeList($bt); ?> </div> ***********The called function is written like this. class AdminArrayWriter { static function makeList($parent,$bt) { $bta =$bt; //echo '<ol>'; foreach ($parent as $busTypeID => $type) { //echo "<li>" . $type['name']. " ". $type['buttonType']; //echo "<li>$type"; if (isset($type['name'])) { AdminArrayWriter::listBusTypeWriter($type['name'], $type['description'], $type['buttonType']); } if (isset($bta[$busTypeID])) { self::makeList($bta[$busTypeID], $bta); } //echo "</li>"; } //echo "</ol>"; } No matter if I sort the array this way, or sort it with the commented out makeList() function, which you can see that this function was built from (using the one in the book as a basis), I get a sorted list by masterType well enough, but I also get all of this extra stuff. The extra stuff is every subgroup, and their subgroupings, listed again until it all peters out. At least the extra stuff looks like that. Is my problem to do with how I am calling the recursive part of this function, given what kind of array I've got put together that holds all of this? Maybe it has to do with how I put the array together in the first place? Seeing as how I need the 'buttonType' value from the table in order to determine which kind of writer to choose when the array values are actually written out into html, it determines what class an element will have which drives a style sheet to present things differently, I had to make the original array more complicated than the book's example. The book was $tasks[$parent_id][$task_id] = $task --- on page 20 and my array is while ($row = $result->fetch()){ $bt[$row['masterType']][$row['busTypeID']] = array('name' => $row['name'], 'description' => $row['description'], 'buttonType' => $row['buttonType']); It looks the same, but might be creating something more complicated? I don't know. Anyway, I can get this to sort the array alright, but I can't get it to stop there.It does keep going through and writing the additional, even if I stick to the original makeList() function, which is taken from the book. I get the spill back, where the listing for the array goes into the subcategories, even when I pare down the list to a more specific list, which is not a selection of everything in the database. So the length of it doesn't seem the matter. I'm positive I'm mismatching the array creation and the array calls, but I don't know enough about how this multi-dimensional array stuff works, both for the creation and, especially, the calling to be able to figure it out. When I print out just the array it looks right. Here is the top of it through the first first position switch, which shows how the masterType changes. Array ( [3] => Array ( [91] => Array ( [name] => Transportation [description] => [buttonType] => master ) [92] => Array ( [name] => Gasoline [description] => [buttonType] => master ) [93] => Array ( [name] => Clothing [description] => [buttonType] => master ) [94] => Array ( [name] => Construction Supply [description] => [buttonType] => potential ) [95] => Array ( [name] => Footwear [description] => [buttonType] => potential ) [96] => Array ( [name] => Furniture [description] => [buttonType] => potential ) [97] => Array ( [name] => Grocery [description] => [buttonType] => master ) [98] => Array ( [name] => Household [description] => [buttonType] => master ) [99] => Array ( [name] => Jewelry [description] => [buttonType] => potential ) [100] => Array ( [name] => Marijuana [description] => [buttonType] => master ) [101] => Array ( [name] => Office Supplies [description] => [buttonType] => potential ) [102] => Array ( [name] => Recreational [description] => [buttonType] => potential ) [103] => Array ( [name] => Eyewear [description] => [buttonType] => potential ) [104] => Array ( [name] => Department Store [description] => [buttonType] => potential ) [105] => Array ( [name] => Pet Supplies [description] => [buttonType] => potential ) [106] => Array ( [name] => Discount Store [description] => [buttonType] => potential ) [107] => Array ( [name] => Liquor Store [description] => [buttonType] => potential ) [108] => Array ( [name] => Book Store [description] => [buttonType] => potential ) [109] => Array ( [name] => Art [description] => [buttonType] => master ) [110] => Array ( [name] => Hobbies [description] => [buttonType] => potential ) [111] => Array ( [name] => Toys [description] => [buttonType] => potential ) [112] => Array ( [name] => Convenience Store [description] => [buttonType] => potential ) [113] => Array ( [name] => Computers [description] => [buttonType] => potential ) [114] => Array ( [name] => Craft Store [description] => [buttonType] => potential ) [115] => Array ( [name] => Fabric/Sewing Store [description] => [buttonType] => potential ) [116] => Array ( [name] => Science Supplies [description] => [buttonType] => potential ) [117] => Array ( [name] => Phones [description] => [buttonType] => potential ) [118] => Array ( [name] => Florists [description] => [buttonType] => potential ) ) [91] => Array ( [119] => Array ( [name] => Auto Parts [description] => [buttonType] => sub ) [120] => Array ( [name] => Motorcycle Sales/Repair [description] => [buttonType] => sub ) *******See how the masterType has changed from 3 to 91. And here is the list I get from a particular array. See how after 28, Florists the list goes back to what has already been categorized and sorted previously/ Transportation master Auto Parts sub Motorcycle Sales/Repair sub Small Craft Sales/Repair sub Auto Sales sub Gasoline master Gas Station sub Gasoline/Convenience Store sub Gasoline/Service Station sub Clothing master Clothing New sub Clothing Used sub Clothing Specialty sub Construction Supply potential Footwear potential Furniture potential Grocery master Traditional Grocer sub Natural/Vitamin Grocer sub Boutique Grocer sub Household master Household - Electronics sub Household - Small Goods sub Household - Appliances sub Household - General sub Hardware sub Jewelry potential Marijuana master Marijuana - Medical sub Marijuana - Recreational sub Marijuana - Medical/Recreational sub Office Supplies potential Recreational potential Eyewear potential Department Store potential Pet Supplies potential Discount Store potential Liquor Store potential Book Store potential Art master Art Gallery sub Art Supplies sub Framing sub Hobbies potential Toys potential Convenience Store potential Computers potential Craft Store potential Fabric/Sewing Store potential Science Supplies potential Phones potential Florists potential Auto Parts sub Motorcycle Sales/Repair sub Small Craft Sales/Repair sub Auto Sales sub Gas Station sub Gasoline/Convenience Store sub Gasoline/Service Station sub Clothing New sub Clothing Used sub Clothing Specialty sub Traditional Grocer sub Natural/Vitamin Grocer sub Boutique Grocer sub Household - Electronics sub Household - Small Goods sub Household - Appliances sub Household - General sub Hardware sub Marijuana - Medical sub Marijuana - Recreational sub Marijuana - Medical/Recreational sub Art Gallery sub Art Supplies sub Framing sub
×
×
  • Create New...