多个foreach - 第一个结果不显示

I am playing around with the below code, I am making my personal "music database". In my mysql I have the following tables:

  • Music Categories
  • Music Artists
  • Music Tracks

The code below works fine except it doesn't display the first track of the database, it skips it, but it displays all the rest just fine. If I take the below example, the data displayed is as follows:

    Category: 70's
    artist2       trackname2

    Category: 90's
    artist3       trackname3

So, the first track get's skipped. I have been playing around with the code, but I cannot get it to work. It should be displayed like this:

    Category: 70's
    artist1       trackname1
    artist2       trackname2

    Category: 90's
    artist3       trackname3

Example of how it looks like in the database:

    music_categories:

    musicID     name
    1           70s
    2           80s
    3           90s


    music_artists:

    artistID    name
    1           artist1
    2           artist2
    3           artist3


    music_tracks:

    id  musicID     artistID    track

    1   1           1           trackname1
    2   1           2           trackname2
    3   3           1           trackname3

Each music track has one artist and one category. I am using the code below in my classes.php file:

public function grabResults($table)
{
    $result = 'SELECT * FROM '.$table;

    $query = $this->mysqli->query($result);

    if($query)
    {
        while($row = $query->fetch_assoc())
        {
            $rows[] = $row;
        }
            return $rows;
    }
    else {
        return false;
    }
}

And this is the code itself:

    $categories     = $data->grabResults(music_categories);
    $artists    = $data->grabResults(music_artists);
    $tracks     = $data->grabResults(music_tracks);

    $catName    = '';
    $counter    = 0;

foreach ($categories as $category)
{
    foreach ($tracks as $track)
    {
        if($category['name'] != $catName)
        {
            $countID    = $category['id'];
            $total      = $data->mysqli->query("SELECT `musicID` FROM `music_tracks` WHERE `musicID` = '$countID' "); 
            $totalCount     = $total->num_rows;

                if($totalCount > 0)
                {
                    echo $category['name'];
                }

            $catName    = $category['name'];
            $counter    = 0;
        }
            if($counter > 0)
            {
                if($category['id'] == $track['mid'])
                {
                    foreach ($artists as $artist)
                    {
                        if($track['artistID'] == $artist['id'])
                        {
                            echo $artist['name'];
                        }
                    }
                        echo $track['track'];
                        echo "<br>";
                }
            }
    $counter++;

    }
}