Note that there are some explanatory texts on larger screens.

plurals
  1. PODisplay tagged items in lists sorted by tags
    primarykey
    data
    text
    <p>I have tasks that have tags in this format:</p> <pre><code>Array ( [0] =&gt; stdClass Object ( [task_id] =&gt; 10, [task_text] =&gt; Mow and fertilize, [tags] =&gt; Array ( [0] =&gt; stdClass Object ( [tag_id] =&gt; 1, [tag_text] =&gt; House, [tt_tag_id] =&gt; 1, //from relational table, tt = task_tag [tt_task_id] =&gt; 10, [tt_id] =&gt; 20, //auto id from relational table [tt_order] =&gt; 0 ), [1] =&gt; stdClass Object ( [tag_id] =&gt; 2, [tag_text] =&gt; Yard, [task_tag_id] =&gt; 2, [task_task_id] =&gt; 10, [tt_id] =&gt; 21, [tt_order] =&gt; 1 ) [2] =&gt; stdClass Object ( [tag_id] =&gt; 5, [tag_text] =&gt; Lawn, [task_tag_id] =&gt; 5, [task_task_id] =&gt; 10, [tt_id] =&gt; 22, [tt_order] =&gt; 2 ) ) ) [1] =&gt; stdClass Object ( [task_id] =&gt; 11, [task_text] =&gt; Unclog the sink drain, [tags] =&gt; Array ( [0] =&gt; stdClass Object ( [tag_id] =&gt; 1, [tag_text] =&gt; House, [task_tag_id] =&gt; 1, [task_task_id] =&gt; 11 [tt_id] =&gt; 30, [tt_order] =&gt; 0 ), [1] =&gt; stdClass Object ( [tag_id] =&gt; 3, [tag_text] =&gt; Kitchen, [task_tag_id] =&gt; 3, [task_task_id] =&gt; 11, [tt_id] =&gt; 31, [tt_order] =&gt; 1 ) ) ) [2] =&gt; stdClass Object ( [task_id] =&gt; 12, [task_text] =&gt; Purchase new microwave, [tags] =&gt; Array ( [0] =&gt; stdClass Object ( [tag_id] =&gt; 4, [tag_text] =&gt; Apartment 1, [task_tag_id] =&gt; 4, [task_task_id] =&gt; 12 [tt_id] =&gt; 40, [tt_order] =&gt; 0 ), [1] =&gt; stdClass Object ( [tag_id] =&gt; 3, [tag_text] =&gt; Kitchen, [task_tag_id] =&gt; 3, [task_task_id] =&gt; 12, [tt_id] =&gt; 41, [tt_order] =&gt; 1 ) ) ) ) </code></pre> <p>I want to be able to sort the tasks by the tags like this:</p> <pre><code>Array ( [0] =&gt; stdClass Object ( [tag_id] =&gt; 1, [task_text] =&gt; House, [child_tags] =&gt; Array ( [0] =&gt; stdClass Object ( [tag_id] =&gt; 2, [tag_text] =&gt; Yard, [task_tag_id] =&gt; 2, [task_task_id] =&gt; 10, [tt_id] =&gt; 21, [child_tags] =&gt; Array ( [1] =&gt; stdClass Object ( [tag_id] =&gt; 5, [tag_text] =&gt; Lawn, [task_tag_id] =&gt; 5, [task_task_id] =&gt; 10, [tt_id] =&gt; 22, [task_id] =&gt; 10, [task_text] =&gt; Mow and fertilize ) ), [1] =&gt; stdClass Object ( [tag_id] =&gt; 3, [tag_text] =&gt; Kitchen, [task_tag_id] =&gt; 3, [task_task_id] =&gt; 11, [tt_id] =&gt; 31, [task_id] =&gt; 11, [task_text] =&gt; Unclog the sink drain, ) ) ) [1] =&gt; stdClass Object ( [tag_id] =&gt; 4, [tag_text] =&gt; Apartment 1, [child_tags] =&gt; Array ( [0] =&gt; stdClass Object ( [tag_id] =&gt; 2, [tag_text] =&gt; Kitchen, [task_tag_id] =&gt; 2, [task_task_id] =&gt; 10, [tt_id] =&gt; 21, [task_id] =&gt; 12, [task_text] =&gt; Purchase new microwave ) ) ) ) </code></pre> <p>Ultimately what I am shooting for is:</p> <pre><code>&lt;ul&gt; &lt;lh&gt;House&lt;/lh&gt; &lt;li&gt; &lt;ul&gt; &lt;lh&gt;Kitchen&lt;/lh&gt; &lt;li&gt;Unclog the sink drain&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt; &lt;ul&gt; &lt;lh&gt;Yard&lt;/lh&gt; &lt;li&gt; &lt;ul&gt; &lt;lh&gt;Lawn&lt;/lh&gt; &lt;li&gt;Mow and fertilize&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt; &lt;lh&gt;Apartment 1&lt;/lh&gt; &lt;li&gt; &lt;ul&gt; &lt;lh&gt;Kitchen&lt;/lh&gt; &lt;li&gt;Purchase new microwave&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; </code></pre> <p>The database is exactly how you imagine. A task table and a tag table with a n2n relational table.</p> <p>There doesn't appear to be a simple way to loop through the tasks and tags to sort them in this manner. Should I try different approach? Is this silly?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload