Valuate Domain Names
DNForum - Domain Sales, Domain Forum, Domain Appraisals, Domain Registrars
HomeRegisterMembershipsGetting StartedDomain Tools Domain EbooksSEO Software Domain Resellers Advertise

Go Back   DNForum - Domain Sales, Domain Forum, Domain Appraisals, Domain Registrars > Content Development > Website Development and Design Discussion > Coding/Programming/Languages
Register Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old 08-31-2009, 07:14 PM   #1 (permalink)
Platinum Lifetime Member
 
mgstudent's Avatar
 
Last Online: 10-17-2009 01:44 PM
iTrader: (2)
Join Date: Sep 2006
Posts: 241
DNF$: 352
Location: New York
Country:


php mysql loop question

Can anyone help? I have a mysql table with the following information:

Quote:
ID Name Chapter Description
1 uniqueName1 Ch1 Name uniqueDescription1
2 uniqueName2 Ch1 Name uniqueDescription2
3 uniqueName3 Ch1 Name uniqueDescription3
4 uniqueName4 Ch2 Name uniqueDescription4
5 uniqueName5 Ch2 Name uniqueDescription5
6 uniqueName6 Ch3 Name uniqueDescription6
7 uniqueName7 Ch3 Name uniqueDescription7

I have some php loop code which echos the rows in the following format:


Quote:
1 - uniqueName1 - uniqueDescription1

2 - uniqueName2 - uniqueDescription2

3 - uniqueName3 - uniqueDescription3

4 - uniqueName4 - uniqueDescription4

5 - uniqueName5 - uniqueDescription5

6 - uniqueName6 - uniqueDescription6

7 - uniqueName7 - uniqueDescription7

What I would like to do is to get the Chapter Name above the lines with the same chapter. But not above every line. See below:


Quote:
Ch1 Name

1 - uniqueName1 - uniqueDescription1

2 - uniqueName2 - uniqueDescription2

3 - uniqueName3 - uniqueDescription3

Ch2 Name

4 - uniqueName4 - uniqueDescription4

5 - uniqueName5 - uniqueDescription5

Ch3 Name

6 - uniqueName6 - uniqueDescription6

7 - uniqueName7 - uniqueDescription7

Do you know how I could edit my loop below:



Quote:
$query = "SELECT * FROM tbl order by ID ASC";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo "<br />";
echo $row['id'];
echo " - ";
echo $row['Name'];
echo " - ";
echo $row['Description'];
echo "<br />";
}
__________________
cheap textbooks
mgstudent is offline   Reply With Quote
Sponsored Ads
Old 08-31-2009, 07:39 PM   #2 (permalink)
Platinum Lifetime Member
No Avatar
 
Last Online: Yesterday 08:12 PM
iTrader: (1)
Join Date: Jun 2007
Posts: 164
DNF$: 10
Location: Vancouver
Country:


You'll need an extra field for chapter in database, then use a if else within the loop
dncsacnt is offline   Reply With Quote
Old 08-31-2009, 09:18 PM   #3 (permalink)
Platinum Lifetime Member
 
mgstudent's Avatar
 
Last Online: 10-17-2009 01:44 PM
iTrader: (2)
Join Date: Sep 2006
Posts: 241
DNF$: 352
Location: New York
Country:


Quote:
Originally Posted by dncsacnt View Post
You'll need an extra field for chapter in database, then use a if else within the loop
Thanks for your reply dnc. I already have that field in the table (in the database) as shown in the first quote box in my first post.

My problem is that I only want the chapter name to be echoed once above the corresponding lines (but importantly not above each line). That's where I'm having some trouble.

As shown ID 1-3 are all part of chapter1, ID 4-5 are chapter2, ID 6-7 are chapter3 - so in this batch of rows I'd only need 3 chapter headings.

Could you give me an example of an if else which could work to echo the chapter name only once for each group that chapter name?

Many thanks.
__________________
cheap textbooks
mgstudent is offline   Reply With Quote
Old 08-31-2009, 10:07 PM   #4 (permalink)
Bob
Jedi Master
 
Bob's Avatar
 
Name: Bob
Last Online: Yesterday 08:54 AM
iTrader: (74)
Join Date: Apr 2002
Posts: 2,980
DNF$: 140
Location: Massachusetts
Country:


Try this:


Code:
 $query = "SELECT * FROM tbl order by ID ASC";
$result = mysql_query($query) or die(mysql_error());

$currentChapter = '';  // added line

while($row = mysql_fetch_array($result)) {

if($currentChapter!=$row['Chapter']) {echo "<b><font color='red'>".$row['Chapter']."</font></b><br>";} // added line
$currentChapter=$row['Chapter'];   // added line

echo "<br />";
echo $row['id'];
echo " - ";
echo $row['Name'];
echo " - ";
echo $row['Description'];
echo "<br />";
}
__________________
The massive purge has begun.
Bob is offline   Reply With Quote
Old 08-31-2009, 11:09 PM   #5 (permalink)
Platinum Lifetime Member
 
mgstudent's Avatar
 
Last Online: 10-17-2009 01:44 PM
iTrader: (2)
Join Date: Sep 2006
Posts: 241
DNF$: 352
Location: New York
Country:


Bob - I owe you.

Your method was a really smart solution and I'm grateful for your help. If our paths cross in future and I can help you in some way let me know (you have saved me many hours!)

Thanks again.
__________________
cheap textbooks
mgstudent is offline   Reply With Quote
Old 09-01-2009, 09:43 AM   #6 (permalink)
Bob
Jedi Master
 
Bob's Avatar
 
Name: Bob
Last Online: Yesterday 08:54 AM
iTrader: (74)
Join Date: Apr 2002
Posts: 2,980
DNF$: 140
Location: Massachusetts
Country:


Welcome.

When and if we ever cross path, you can buy me a free glass of water.

-Bob
__________________
The massive purge has begun.
Bob is offline   Reply With Quote
Old 09-01-2009, 10:51 AM   #7 (permalink)
Platinum Lifetime Member
 
mgstudent's Avatar
 
Last Online: 10-17-2009 01:44 PM
iTrader: (2)
Join Date: Sep 2006
Posts: 241
DNF$: 352
Location: New York
Country:


My pleasure. I'll buy you 2 !
__________________
cheap textbooks
mgstudent is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -5. The time now is 06:19 PM.
Copyright @2001-2009 DNForum.com