>-----Original Message----- >From: PJ [mailto:af.gour...@videotron.ca] >Sent: Sunday, February 22, 2009 2:39 PM >To: MySql >Subject: book categories > >Here's a tough one... >In my library I have some 62 categories where a number of books can be >in several categories. >Now, to relate the "categories" table(AS c) to the "book" table (AS a), >I assume that I need an intermediate table "book_category" (AS d) >linking d.bookID to the b.bookID and d.categoryID to c.id. With so many >categories and (probably) thousands of books d may become quite lengthy >(but, I guess it's better than 62 * 100's of lengthy fields added to b). >To enter the relationships I would add instructions on my >addNewBooks.php form with the input as multiple choice dropdown box >(listing the categories)... >so far, so good (I hope)... >Now, how do I SELECT and retrieve these categories to display on the web >page? >From the book_category table with a WHERE statement? If so, what then? >CONCAT_WS the stuff to go into the html table <td>? >I hope I'm on the right track... or am I in deep water? >Help... > [JS] We do this all of the time, and it isn't that difficult. You don't want to use any form of CONCAT. What you want to do is SELECT all of your categories in one fell swoop, and then loop through them to create your dropdown. Here's a simple example, directly from our code. This would be inside a form. (I apologize for the line-wrapping.)
=========================== Account:<br> <select name="account_id" style="width: 50px;" tabindex="23"> <!-- First, we enter a null value as the first option available in the pulldown --> <option value=""></option> <?php // Now we pull all of the accounts from the account table $query = "SELECT * FROM account ORDER BY account_name;"; // Execute the query or die trying $result = mysql_query($query) or die ("Unable to execute $query:<br/>" . mysql_error()); // Loop as long as we have records while($row_tmp = mysql_fetch_array($result)) { ?> <!-- The value of the account_id option is set to the account_id, but the displayed information is the corresponding real_name --> <option value="<?= $row_tmp["account_id"] ?>" <?= $new ? "" : (($row_tmp["account_id"] == $row["account_id"]) ? " selected=\"selected\"" : "") ?>><?= $row_tmp["real_name"] ?> </option> <?php } // end while ?> </select> ======================================= All it really does is loop through the results of the SELECT statement, and spit out an <option...> for each record. >-- > >Phil Jourdan --- p...@ptahhotep.com > http://www.ptahhotep.com > http://www.chiccantine.com > > >-- >MySQL General Mailing List >For list archives: http://lists.mysql.com/mysql >To unsubscribe: http://lists.mysql.com/mysql?unsub=jschwa...@the- >infoshop.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=arch...@jab.org