Lone_Wanderer
Lone_Wanderer

Reputation: 189

MYSQL fetching rows to different tables

I'm here with following problem. I have table with multiple records. Each row represents news of some kind, so I need to distinguish one from the another. The way to do that, is to make a table for each of these news(or a wrapper of some kind), however I encoutred a problem with fetching each result to each table(wrapper).
I can't figure out how to tell SQL to put the record separatley. Below is chunk of my code, as well as the design for the table.

.news{
    width:400px;
    height:auto;
    border: 1px solid red;
    float:left;
}

.news tr:first-child{
    font-weight: bold;
    height:40px;
    text-align: center;
}
.news tr:last-child{
    background-color: whitesmoke;
    height: 200px;
    padding-bottom: auto;
    text-align: center;
}
.details td{
    width:200px;
    height: 40px;
    text-align: center;
}
echo "<table class='news'>";
    while ($row = mysqli_fetch_array($result)) {
        echo "<tr>
                <td colspan='2'>
                    $row[0]
                </td>
            </tr>
            <tr class='details'>
                <td>
                    $row[1]
                </td>
                <td>
                    $row[2]
                </td>
            </tr>    
            <tr>    
                <td colspan='2'>
                    $row[3]
                </td>
            </tr>";
        echo "</table>";
    }

$query = " SELECT headline, date, concat (firstName,' ',lastName), body FROM "
        . "school_info natural join teachers ORDER BY id_school_inf DESC LIMIT 2;";
$result = mysqli_query($conn, $query);

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^This is my query. There is a limit, so i can always fetch latest (let's say last 5) news.
Any help would be much appreciated

Upvotes: 0

Views: 58

Answers (1)

Marc B
Marc B

Reputation: 360692

You need to create a separate table for every type of record you have? Simple enough, if you order your records by the type:

SELECT * FROM whatever ORDER BY type_of_record

then

$previous = null;
while(... fetch from db ...) {
    if ($row['type'] != $previous) {
         ... got new record type, start new table 
    }
    ... display row
    $previous = $row['type']; // store current type for comparison later
}

Upvotes: 2

Related Questions