Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Had a small problem with a PHP script
Index -> Programming, PHP -> PHP Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
raidercom




PostPosted: Sun Apr 27, 2008 9:34 am   Post subject: Had a small problem with a PHP script

I hate to do this on my first post, but I needed some help, and I remembered this board from High School.

My problem is that I have information stored in a database with 3 fields
Number, Name, and Got
It is a list of items, the number related to that item, and whether I have it or not.

ex:
1 Series 1
2 Series 1
3 Series 1
4 Series 0
5 Series 1
6 Series 1

In this example, I there are 6 books in the series, and I have 5 of them.
I want my PHP to output that I have
Have: 1-3,5-6
Need: 4

So far, I can make it display 1,2,3,5,6, but that looks really ugly when I have around 50-60 items in a list. I was wondering if anyone could help me create a function for this. I have tried to think about how to do this, but I cannot think of a way.

Any help that could be offered would be appreciated.

Thanks
Jeff
Sponsor
Sponsor
Sponsor
sponsor
jernst




PostPosted: Sun Apr 27, 2008 9:45 am   Post subject: Re: Had a small problem with a PHP script

You could use a loop to check consecutive numbers in an array, print the first number, a dash and then the last consecutive number. Then every time you get a missing number, you add that to a separate list or separate array or whatever to be printed later as the missing ones. Then resume checking for the remaining portion of the array for the consecutive numbers again.
raidercom




PostPosted: Sun Apr 27, 2008 9:55 am   Post subject: Re: Had a small problem with a PHP script

Thanks, I will do that. I cannot believe I didn't think of that...

Thank you for your fast reply.
raidercom




PostPosted: Sun Apr 27, 2008 8:55 pm   Post subject: Re: Had a small problem with a PHP script

This is what I have right now, but I keep getting a lot of fluky results.
$result = array (1); //test1
$result = array (1, 2);//2
$result = array (1, 2, 3);//3
$result = array (1, 3);//4
$result = array (1, 3, 4);//5
$result = array (1, 2, 4, 5);//6
$result = array (1, 2, 4, 5, 8);//7

$Continuous = 3;
$LastNum = 0;
$TotalRuns = count($result);
for ($a = 0; $a < $TotalRuns; $a ++)
{
if ($a == 0)
{
$Continuous = 1;
echo $result [$a];
$LastNum = $result [$a];
}
elseif ($a == $TotalRuns - 1)
{
if ($result [$a] - 1 == $LastNum)
{
$Continuous = 1;
echo '-' , $result [$a];
}
else
{
echo ',' , $result [$a];
$LastNum = $result [$a];
$Continuous = 0;
}
}
else
{
if ($LastNum + 1 == $result [$a])
{
$Continuous = 1;
$LastNum = $result [$a];
}
else
{
if ($Continuous == 1)
{
if ($a > 1)
{
echo '-' , $LastNum;
echo ',' , $result [$a];
$LastNum = $result [$a];
}
else
{
echo ',' , $result [$a];
$LastNum = $result [$a];
}
}
else
{
echo ',' , $result [$a];
$LastNum = $result [$a];
}
$Continuous = 0;
}
}
}

I'm uncertain as to how to do this better, because this way doesn't appear to work.

Any help would be appreciated.

Jeff
raidercom




PostPosted: Sun Apr 27, 2008 9:06 pm   Post subject: Re: Had a small problem with a PHP script

Also tried something along the lines of:

$TotalRuns = count($result);
for ($a = 0; $a < $TotalRuns; $a ++)
{
if ($a == 0)
{
echo $result [$a];
}
if ($result [$a] + 1 == $result [$a + 1])
{
$Continuous = 1;
//echo "asdsada" . $a . "asdsad";
}
else
{
if ($Continuous == 1)
{
echo '-' , $result [$a];
}
else
{;
if ($a <> 0)
{
echo ',' , $result [$a];
}
}
$Continuous = 0;
}
}
raidercom




PostPosted: Sun Apr 27, 2008 9:09 pm   Post subject: Re: Had a small problem with a PHP script

Think I fixed it now:

If anyone can see any problems with my code, I would appreciate feedback.

$TotalRuns = count($result);
for ($a = 0; $a < $TotalRuns; $a ++)
{
if ($a == 0)
{
echo $result [$a];
}
if ($result [$a] + 1 == $result [$a + 1])
{
if ($Continuous == 0)
{
if ($a <> 0)
{
echo ',' , $result [$a];
}
}
$Continuous = 1;
//echo "asdsada" . $a . "asdsad";
}
else
{
if ($Continuous == 1)
{
echo '-' , $result [$a];
}
else
{;
if ($a <> 0)
{
echo ',' , $result [$a];
}
}
$Continuous = 0;
}
}

Thanks

Jeff
Display posts from previous:   
   Index -> Programming, PHP -> PHP Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 6 Posts ]
Jump to:   


Style:  
Search: