2012-03-03 34 views
-1

我想搜索數據庫中的數據 多少個用戶沒有投標,我必須首先從表中搜索成員id tbl_members比從該成員id我正在搜索no的出價從表中tbl_bids 然後從tbl_bids我也得到PRODUCT_ID指有關產品標識的出價被放置然後根據這個產品ID AMD正從tbl_products查詢中的循環錯誤

這裏的產品名稱是我對這個過程

fkdslfsd 
代碼

fd sf 個DS FDS ˚F SD fdsgfhfgfghfgh GF HFG

fgbfd bfdb VCB VCB VCB VC b CB ˚F gfdg FDG FDG FD GDF 克 FDG fd gdf ​​

我得到的一切,但opnly錯誤我得到的是產品,一切都按不投標的重複

請點擊這裏查看 www.snapbid.in/make/dashboard.php

和搜索damodar你會和檢查他的細節

回答

0

看起來你爲每個投標而不是每個拍賣(這是我想你想)輸出一行。由於代碼亂七八糟,我無法真正發佈代碼的更新版本。這裏有一些指針:

  • 請發佈格式良好的代碼,以便人們可以幫助你。沒有人想要像上面這樣編碼,
  • 請閱讀SQL injection。不要直接在查詢中使用代碼之外的值($ _GET和$ _POST等)。如果你期望至少使用一個整數intval(),
  • mysql_函數被認爲有些不推薦使用。更好地使用mysqli_或更好的PDO並綁定您的參數,
  • 請閱讀JOINS。在循環中有多個SQL查詢是一個好主意。

例如,你可能會重寫你的例子中的所有查詢到這樣的事情。

SELECT 
    a.auction_id, 
    a.auction_startdate, 
    a.auction_enddate, 
    p.product_name, 
    p.product_price, 
    COUNT(DISTINCT b.bid_id) as num_bids 
FROM 
    tbl_auctions a 
    INNER JOIN 
     tbl_products p ON a.product_id=p.product_id 
    INNER JOIN 
     tbl_bids b ON a.auction_id=b.auction_id 
WHERE 
    b.member_id = $member_id 
GROUP BY 
    a.auction_id 
+0

這不僅僅是應該正確格式化的代碼。文本本身至少應該有適當的標點符號。 – Zecc 2012-03-03 11:27:15

0

正如@liquorvicar建議的那樣,您應該使用單個查詢返回所有這些數據。他唯一缺少的是GROUP BY子句 -

SELECT 
    a.auction_id, 
    a.auction_startdate, 
    a.auction_enddate, 
    p.product_name, 
    p.product_price, 
    COUNT(b.bid_id) as num_bids 
FROM 
    tbl_auctions a 
INNER JOIN 
    tbl_products p ON a.product_id=p.product_id 
INNER JOIN 
    tbl_bids b ON a.auction_id=b.auction_id 
WHERE 
    b.member_id = $member_id 
GROUP BY 
    a.auction_id, 
    a.auction_startdate, 
    a.auction_enddate, 
    p.product_name, 
    p.product_price; 
+0

感謝您指出這一點(雖然也許評論會更好?)。我認爲你只需要在auction_id上進行分組。我編輯了我的答案。 – liquorvicar 2012-03-04 09:54:20

+0

我覺得答案是合理的,因爲你的答案沒有GROUP BY子句,是不正確的。 [MySQL允許](http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html)您只需在auction_id上編寫GROUP BY,但大多數RDBMS不會。 – nnichols 2012-03-04 11:19:01