Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

nesting do while loops php/mysql

Posted on 2010-08-27
5
Medium Priority
?
528 Views
Last Modified: 2013-12-13
Hi,
I have a page that I want to show archive documents I want it so that I have dates in asending order and underneath the date I want the documents to be listed

so the page will have

2009
 1) document 1
 2) document 2

2008
 1) document 1
 2) document 2


 This is what I have at the moment. Dreamweaver wont allow me to nest the while loop

Is there an easier way of doing it?
 
mysql_select_db($database_db, $db);
$query_enable_login = "SELECT disable_login FROM season";
$enable_login = mysql_query($query_enable_login, $db) or die(mysql_error());
$row_enable_login = mysql_fetch_assoc($enable_login);
$totalRows_enable_login = mysql_num_rows($enable_login);

mysql_select_db($database_db, $db);
$query_archives = "SELECT `year` FROM archive ORDER BY `year` ASC";
$archives = mysql_query($query_archives, $db) or die(mysql_error());
$row_archives = mysql_fetch_assoc($archives);
$totalRows_archives = mysql_num_rows($archives);

  <h2><?php echo $row_archives['year']; ?></h2>
        <?php do { ?>
          <hr />
            <a href="archives/<?php echo $row_archive_item['file']; ?>"><?php echo $row_archive_item['archive_title']; ?></a>
            <hr />
          <?php } while ($row_archive_item = mysql_fetch_assoc($archive_item)); ?>
        </p>

Open in new window

0
Comment
Question by:cataleptic_state
5 Comments
 
LVL 10

Expert Comment

by:honestman31
ID: 33543411
is that ok to go with the for loop ? or foreach  loop ?
0
 
LVL 70

Expert Comment

by:Jason C. Levine
ID: 33543921
Hi cataleptic_state,

There is an easier way to do the loop using this behavior:

http://www.tom-muck.com/extensions/help/simulatednestedregion/

1. Download and install it

2. Create your repeat region so that everything is inside the loop:


        <?php do { ?>
<h2><?php echo $row_archives['year']; ?></h2>
          <hr />
            <a href="archives/<?php echo $row_archive_item['file']; ?>"><?php echo $row_archive_item['archive_title']; ?></a>
            <hr />
          <?php } while ($row_archive_item = mysql_fetch_assoc($archive_item)); ?>
     
3. Highlight the element that should only repeat once:

<h2><?php echo $row_archives['year']; ?></h2>

4. Apply the Simulated Nested Repeat Region from the Server Behaviors Panel

5. Drink Beer.

0
 
LVL 84

Expert Comment

by:Dave Baldwin
ID: 33544046
Looks to me like you're trying to use "$row_archive_item[]" before you have fetched it with "$row_archive_item = mysql_fetch_assoc($archive_item)".  In addition, "$archive_item" is not defined anywhere.
0
 
LVL 4

Author Comment

by:cataleptic_state
ID: 33546715
Hi DaveBaldwin,
The archive_items is another recordset, it is there, just forgot to add it to EE code window.

I will give those examples a try thank you all.
0
 
LVL 84

Accepted Solution

by:
Dave Baldwin earned 2000 total points
ID: 33546801
This is what I did on a similar problem.  You only have to do one query instead of two.
<?php 
mysql_select_db($database_db, $db);
$query_archives = "SELECT * FROM archive ORDER BY `year` ASC";
$archives = mysql_query($query_archives, $db) or die(mysql_error());
$totalRows_archives = mysql_num_rows($archives);

$current = "";

while ($row_archives = mysql_fetch_array($archives)){
	if($current != $row['year']) {
		$current = $row['year'];
		echo "<h2>$current</h2><hr />";
		} ?>
	<a href="archives/<?php echo $row_archives['file']; ?>"><?php echo $row_archives['archive_title']; ?></a>
<?php 
	}
 ?>

Open in new window

0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses how to implement server side field validation and display customized error messages to the client.
In this series, we will discuss common questions received as a database Solutions Engineer at Percona. In this role, we speak with a wide array of MySQL and MongoDB users responsible for both extremely large and complex environments to smaller singl…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

571 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question