Displaying MYSQL database table into PHP table |
Displaying MYSQL database table into PHP table |
joyful |
Mar 30 2011, 11:43 PM
Post
#1
|
Advanced Member Group: Members Posts: 239 Joined: 15-November 10 Member No.: 13,147 |
Hey,
I have set up a MYSQL database and added a table with some data. I want to display this in a table in PHP that is 3 wide, like this: CODE <table width="100" border="0" cellspacing="0" cellpadding="0"> <tr> <td>item1</td> <td>item2</td> <td>item3</td> </tr> <tr> <td>item4</td> <td>item5</td> <td>item6</td> </tr> <tr> <td>item7</td> <td>item8</td> <td>item9</td> </tr> </table> and so on... Now, I have been using this PHP: CODE <?php //connect to the server $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Could not connect: ' . mysql_error()); } //connect to the database mysql_select_db(product_index); //query the database $query = mysql_query("SELECT * FROM products WHERE type = 'bracelets'"); //fetch the results / convert results into an array WHILE($rows = mysql_fetch_array($query)): $product_name = $rows['product_name']; $id = $rows['id']; $description = $rows['description']; $price = $rows['price']; $image_large = $rows['image_large']; $image_thumb = $rows['image_thumb']; $page_link = $rows['page_link']; $purchase_link = $rows['purchase_link']; echo "$product_name<br>$description<br>$price<br>$image_large<br>$image_thumb<br>$page_link<br>$purchase_link<br><br><br>"; endwhile; ?> This works great, but I what to display this on a table that is 3 wide and repeats displaying on to a another line after 3 and so on. I found (what I want) this forum post but could not figure out how to apply it to mine: http://php.bigresource.com/Track/php-C1yROxlq/ Please note, obviously I do not want the checkbox in the forum, I just the table they use. Thanks in advance. -- This post has been edited by joyful: Mar 30 2011, 11:46 PM |
Brian Chandler |
Apr 6 2011, 10:58 AM
Post
#2
|
Jocular coder Group: Members Posts: 2,460 Joined: 31-August 06 Member No.: 43 |
Sorry, I'm not going to write your program for you.
Here is the part of your program that loops through the items, very slightly edited: CODE while ($rows = mysql_fetch_array($result)) { $col++; echo '<td class="sub_table"><center>'; echo '<img src="', $rows[7], '" class="index_image" /><br><span class="index_list_bold">', $rows[2], '<span><br><span class="index_list"><br>', $rows[0],'<br>', $rows[4],'<br><a href="', $rows[8], '" class="index_list">More info</a></span>', '</center></td>'; if ($col == COLS) // last time filled the last column { echo '</tr><tr>'; // start new row -- "linebreak" sequence $col = 0; // so now we're filling first column } else $col++; // increment otherwise } (1) Question: why do you call the variable $rows? What does it represent? It is quite standard to call one entry from the database a "row" -- does this variable represent a row? It might seem mean to keep going on about names of identifiers etc, but in the end if you use well-chosen ones, your program can be read easily, corrected easily, and updated easily. (2) I have divided the bit of code inside the loop into three lumps (by adding two blank lines). What are these lumps? What does each one do? And why? (3) I am really finding this hard: I say "but you have the bit of code for doing it in the wrong place." You say you understand this, but do not know how to "apply" it? Um, perhaps by putting it in the right place... Here, I told you before: "You need to output the linebreak -- if required -- *before* outputting the current <td>." |
Lo-Fi Version | Time is now: 23rd April 2024 - 10:53 AM |