Hi,
Thursday, November 11, 2004, 4:04:27 AM, you wrote:
CL> Given a database query thats returns results from a linking (or xref)
CL> table which includes repetition because of the joins:
CL> +----+--------------------------+----------+
CL> | id | title | subject |
CL> +----+--------------------------+----------+
CL> | 1 | Collected Poems of Keats | poetry |
CL> | 2 | Spy High | suspense |
CL> | 3 | Sci Fi Spies | suspense |
CL> | 3 | Sci Fi Spies | sci-fi |
CL> +----+--------------------------+----------+
CL> What is the best way to go about displaying this for the user so that
CL> the record looks "complete":
CL> ID: 3
CL> title: Sci Fi Spies
CL> Subjects: suspense, scifi
CL> or something similar? Or is there some better way to query? It's also
CL> a problem in terms of limiting the query because if I limit the query
CL> to 10 records I might be chopping off some subjects for the last book?
CL> The query and tables are simple:
CL> select books.id, books.title, subjects.subject
CL> from books, subjects, books_subjects
CL> where books_subjects.bid = books.id
CL> and books_subjects.sid = subjects.id
CL> BOOKS
CL> 1. collected poems of keats
CL> 2. spy high
CL> 3. sci-fi spies
CL> SUBJECTS:
CL> 1. poetry
CL> 2. suspense
CL> 3. sci-fi
CL> 4. horror
CL> 5. mystery
CL> BOOKS_SUBJECTS
CL> bid sid
CL> 1 1
CL> 2 2
CL> 3 2
CL> 3 3
CL> c
when you read the rows create an array of subjects like this
(assuming mysql)
while ($row = mysql_fetch_assoc($result){
$list[$row['title']]['subjects'][] = $row['subject'];
}
//Then you can loop through $list and implode the subjects
foreach ($list as $title=>$subjects){
$subject_list = implode(',',$subjects);
echo "<tr><td>$title</td><td>$subject_list</td></tr>";
}
--
regards,
Tom
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php