Jump to content


Photo

Find unpaid items -logic-


  • Please log in to reply
2 replies to this topic

#1 ericsante

ericsante
  • Members
  • PipPip
  • Member
  • 12 posts

Posted 18 May 2006 - 03:37 AM

I am building an auction administration site, I want to check the auction site for all the closed auctions for the user and compare this against the paid auction table and then display the items that need to be paid for.

I have the SQL query to find the closed auctions, however I am having problems doing the compare against the paid auctions table.

Thanks in advance.

#2 shocker-z

shocker-z
  • Members
  • PipPipPip
  • Advanced Member
  • 864 posts
  • LocationNottingham

Posted 18 May 2006 - 08:53 AM

we could really do with your table structure and an example line of data from the database as could be anything at the moment, so more info needed.


Regards
Liam
www: www.ukchat.ws | irc: irc.ukchat.ws chan: #blufudge

#3 ericsante

ericsante
  • Members
  • PipPip
  • Member
  • 12 posts

Posted 18 May 2006 - 09:20 PM

TABLE `winners` (
`id` int(11) NOT NULL auto_increment,
`auction` int(32) NOT NULL default '0',
`seller` int(32) NOT NULL default '0',
`winner` int(32) NOT NULL default '0',
`bid` double NOT NULL default '0',
`closingdate` timestamp(14) NOT NULL,
`fee` double NOT NULL default '0',
KEY `id` (`id`)
) TYPE=MyISAM;

TABLE `auctions` (
`id` int(32) NOT NULL auto_increment,
`user` int(32) default NULL,
`title` tinytext,
`starts` varchar(14) default NULL,
`description` text,
`pict_url` tinytext,
`category` int(11) default NULL,
`minimum_bid` double(16,4) default NULL,
`reserve_price` double(16,4) default NULL,
`buy_now` double(16,4) default NULL,
`auction_type` char(1) default NULL,
`duration` varchar(7) default NULL,
`increment` double(8,4) NOT NULL default '0.0000',
`location` varchar(30) default NULL,
`location_zip` varchar(10) default NULL,
`shipping` char(1) default NULL,
`payment` tinytext,
`international` char(1) default NULL,
`ends` varchar(14) default NULL,
`current_bid` double(16,4) default NULL,
`closed` char(2) default NULL,
`photo_uploaded` char(1) default NULL,
`quantity` int(11) default NULL,
`suspended` int(1) default '0',
`private` enum('y','n') NOT NULL default 'n',
`relist` int(11) NOT NULL default '0',
`relisted` int(11) NOT NULL default '0',
`num_bids` int(11) NOT NULL default '0',
`sold` enum('y','n','s') NOT NULL default 'n',
`shipping_terms` tinytext NOT NULL,
`bn_only` enum('y','n') NOT NULL default 'n',
`adultonly` enum('y','n') NOT NULL default 'n',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM ;

TABLE `checkout_order` (
`auction` varchar(6) NOT NULL default '',
`user` int(32) NOT NULL default '0',
`firstname` varchar(40) NOT NULL default '',
`lastname` varchar(40) NOT NULL default '',
`address` varchar(40) NOT NULL default '',
`city` varchar(40) NOT NULL default '',
`state` varchar(40) NOT NULL default '',
`zip` varchar(40) NOT NULL default '',
`country` varchar(40) NOT NULL default '',
`phone` varchar(40) NOT NULL default '',
`email` varchar(40) NOT NULL default '',
`shipping_firstname` varchar(40) NOT NULL default '',
`shipping_lastname` varchar(40) NOT NULL default '',
`shipping_address` varchar(40) NOT NULL default '',
`shipping_city` varchar(40) NOT NULL default '',
`shipping_state` varchar(40) NOT NULL default '',
`shipping_zip` varchar(40) NOT NULL default '',
`shipping_country` varchar(40) NOT NULL default '',
`amount` varchar(10) NOT NULL default '',
`credits` varchar(10) NOT NULL default '',
`ipaddr` varchar(15) NOT NULL default '',
`processed` char(1) NOT NULL default '0',
PRIMARY KEY (`auction`)
) TYPE=MyISAM;

The query I have been using is

SELECT a.auction, a.winner, b.id, b.title, b.current_bid, c.auction
FROM winners a, auctions b, checkout_order c
WHERE a.auction = b.id
AND (
b.closed =1
OR b.closed = -1
)
AND b.suspended =0
AND a.winner =17609
AND a.auction != c.auction
LIMIT 0 , 30

----

in the auctions table I have the following records:

id | title | current_bid
1000 | something | 1.00
1001 | something | 1.00
1002 | something | 1.00
1003 | something | 1.00


in the winners I have the following records:

auction | winner| bid
1000 | 17609 | 1.00
1001 | 17609 | 1.00
1002 | 17609 | 1.00
1003 | 17610 | 1.00

in the checkout_orders I have the following records:

auction | user
1002 | 17609
1003 | 17610

so I would expect to see only the records 1000, 1001. However I get 1000,1001,1000,1000




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users