Hello, I'm not sure if anyone else as the need for a php/MySQL based bibliography, but the application that I am developing (which is basically a module for phpSlash) is coming along fairly well. If anyone is interested in seeing the code I can bundle it up and send it out to them (still a long way from finished mind). The draft version of it is up and running here: http://openconcept.ca/WLP/biblio/index.php3 I'm running into a couple problems though that I don't have the logic language for and I was hoping folks here could help me (as you have done in the past). The problem is that I've set up a many to many table to ensure that I can have an author be listed as writing many books and a book be written by many authors. However in listing the books as a bibliography (as the URL above), I want to be able to list multiple authors, and do so in a different format for the first author than for all subsequent ones. I'm hoping to be able to produce output like this: Young, D. and N. Dixon. Helping Leaders Take Effective Action: A Program Evaluation. Greensboro, North Carolina: Center for Creative Leadership, 1996. So, I think the first challenge should be to calculate which books have multiple authors by doing something like this (It's using phplib structures, sorry): $q2 = "SELECT * FROM WLPbib2profile ORDER BY bibID"; $this->db->query($q2); // Performs above query while ($this->db->next_record()) { if ($this->db->Record["bibID"] != $last_bibID) { echo "<br>" . $this->db->Record["bibID"] . " : " . $this->db->Record["profileID"]; } else { // Multiple Authors echo ", " . $this->db->Record["profileID"]; $multiple_profileID .= array ($this->db->Record["bibID"] => $this->db->Record["profileID"]); $multiple_profileID .= array($this->db->Record["bibID"] => "yes"); } $last_bibID = $this->db->Record["bibID"]; } } With this I can then use the value $multiple_profileID to determine if this record has duplicates or not and use something like this to include both authors and not repeat the bibliography item: if ($multiple_profileID[$bibID]=="yes") { while (list($key, $val) = each($multiple_profileID)) { $written_by = $key . " : " . $val . "<br>"; if ($this->db->Record["firstName"]) { $written_by .= stripslashes($this->db->Record["firstName"]) . " "; } if($this->db->Record["lastName"]) { $written_by .= stripslashes($this->db->Record["lastName"]); } } } else { if($this->db->Record["lastName"]) { $written_by .= stripslashes($this->db->Record["lastName"]) . ", "; } if ($this->db->Record["firstName"]) { $written_by .= stripslashes($this->db->Record["firstName"]); } } But this seems really awkward (at the best of times) and (worst of all) it isn't working. I've got another related problem in that I've set up the following fields in one table: firstName lastName organization and I need to be able to order them by a combination of lastName & organization. I could list the organization field simply as the lastName, but that seems like it would be confusing the data types... Must be a way around this.. I suspect it is limited by my logic & not PHP's. Any ideas would be appreciated. Mike -- Mike Gifford, OpenConcept Consulting, http://openconcept.ca Offering everything your organization needs for an effective web site. Abolish Nuclear Weapons Now!: http://pgs.ca/petition/ It is a miracle that curiosity survives formal education. - A Einstein -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]