Link to home
Start Free TrialLog in
Avatar of katlees
katleesFlag for United States of America

asked on

Listing event name only once

I have a database where we have events entered. In one part of my website, I have it pulling up the next three ticketed events. In some cases, an event goes multiple dates and we only want it to show on the top 3 list once.
Example..
Event 1
Oct 2, 2008
Event 1
Oct 3, 2008
Event 1
Oct. 4, 2008

I want it to only list Event 1 one time and then the next two events that don't have the same Name as Event 1. Then when Oct. 3 comes around, oct 2 will drop off but the event will still be listed under Oct 3. When oct 4 is over, the event is still listed under oct 4.

The code is written below
<?php
	$currentdate = date('Y-m-D');
 
	$event_query = "SELECT * FROM Events WHERE Date >= '$currentdate' and Tickets ='1' ORDER BY `Events`.`Date` ASC";
	$event_query_result = mysql_query($event_query);
 
	if (!event_query_result)
	{
		echo "Could not successfully run query ($event_query) from DB: " . mysql_error();
		exit;
	}
 
	$event_counter = 0;
 
	while ($event_row = mysql_fetch_assoc($event_query_result))
	{
		$event_name = $event_row['Name'];         
		$event_dates = $event_row['Date'];    
		$display_date = date("M j, Y", strtotime($event_dates ));        
		$event_time = $event_row['DisplayTime'];    
		$event_tickets = $event_row['Tickets'];        
		$event_id = $event_row['ID'];
		$eventCode = $event_row['EventCode'];
		$seasonCode = $event_row['SeasonCode'];
		$OnSale = $event_row['OnSale'];
 
		echo "<p class=\"style18\"><a href=\"display_event.php?id=$event_id\">$event_name</a> <br />\n";
		echo "$display_date - $event_time - <a href='http://ev12.evenue.net/cgi-bin/ncommerce3/SEGetEventInfo?ticketCode=GS%3ARUSHMORE%3A".$event_row['SeasonCode']."%3A".$event_row['EventCode']."%3A&linkID=rushmore&shopperContext=&caller=&appCode='>Click Here</a></p>\n";
 
		$event_counter++;
 
		if ($event_counter > 2)
		{
			break;
		}
	}
 
	if ($event_counter == 0)
	{
		echo "<p class=\"style18\">No Events Scheduled</p>\n";
	}	
?>

Open in new window

Avatar of gamebits
gamebits
Flag of Canada image

$event_query = "SELECT DISTINCT * FROM Events WHERE Date >= '$currentdate' ....
Avatar of katlees

ASKER

It's not working...
SELECT DISTINCT * FROM Events WHERE Date >= `$currentdate` order by $currentdate Limit 0,2
The Limit will give you only the first 3 events.
 $event_query = "SELECT * FROM Events WHERE Date >= '$currentdate' and Tickets ='1' ORDER BY `Events`.`Date` ASC limit 0,2";

Open in new window

Try this

SELECT *, count(Events) FROM Events WHERE Date >= '$currentdate' and Tickets ='1' GROUP BY Events HAVING count(Events)>=1 ORDER BY `Events`.`Date` ASC ";
Avatar of katlees

ASKER

ehabafia - that only shows the first two events..... and it lists two with the same nam.
$event_query = "SELECT DISTINCT * FROM Events WHERE Date >= '$currentdate' and Tickets ='1' ORDER BY `Events`.`Date` ASC limit 0,3";
Avatar of katlees

ASKER

gamebits - that doesn't list any
Avatar of katlees

ASKER

It is still listing an event with the same name twice.....

Does it have to do with the event_counter being outside the loop?
SELECT DISTINCT(NAME), * FROM Events WHERE Date >= '$currentdate' and Tickets ='1' ORDER BY `Events`.`Date` ASC limit 0,3
Sorry,

SELECT DISTINCT(NAME), * FROM Events WHERE Date >= '$currentdate' and Tickets ='1' group by NAME ORDER BY `Events`.`Date` ASC limit 0,3
Avatar of katlees

ASKER

Ehabafia - again, no results
make sure that you have a result for the conditions that you are having,
also try to use the now() instead of current date:

SELECT DISTINCT(NAME), * FROM Events WHERE Date >= now() and Tickets ='1' group by NAME ORDER BY `Events`.`Date` ASC limit 0,3

I thing it should work
or currentdate()

SELECT DISTINCT(NAME), * FROM Events WHERE Date >= currentdate() and Tickets ='1' group by NAME ORDER BY `Events`.`Date` ASC limit 0,3
Avatar of katlees

ASKER

ehabafia - still getting no results. If I change my original code to
if ($event_counter > 7

It shows 7 results.... so I know there are records in there
could you send me a sample of the database data so that I can look at it.

Thank you and sorry for the delay.
Avatar of katlees

ASKER

http://75.125.62.3/~gotmine/index.php is the page it is on....

On http://75.125.62.3/~gotmine/index2.php I have it pulling the next 10 events
Avatar of katlees

ASKER

I got an answer from someone else. I'll post it in a minute
ASKER CERTIFIED SOLUTION
Avatar of katlees
katlees
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
that's what I meant evenname (Event)  but I didn't know your database field names.

but you need to add at the ind of the sql statement the word Limit 0,3
Well it was unfair to close the subject this way, without giving enough information but whatever.
Avatar of katlees

ASKER

I gave my full code. How is that not enough information? I got an answer elsewhere. Sorry yours didn't work.
you gave the code but you didn't gave the database information.  Anyways I faced allot of peoples like you and that is not the first and it's not gonna be the last time facing someone like you.