如何使用PHP查询MySQL的某些行,然后基于UID针对每一行,根据值查询另一个表?

问题描述 投票:0回答:2

我正在申请人们出售物品并提供产品报价。如果用户查看其产品报价,则必须包含每个报价信息以及该报价的每个用户的详细信息。首先,通过ajax onclick函数激活要查询的数据库。 (我知道了)其次,在OFFERS表中查询状态为'o'且PID等于$_GET['pid'](5)的商品。

OFFERS
------------------------------
| uid | pid | status | price |
------------------------------
|  5  |  5  |   o    |  49   |
|  7  |  5  |   o    |  45   |
------------------------------

然后根据每个要约查询USERS表以获取信息?此后,对于每个结果,根据UID,在users表中查询与用户有关的信息。

USERS
-------------------------------------
| uid |  fname   |  lname  | rating |
-------------------------------------
|  5  |   John   |   Jan   |   4.3  |
|  7  |   Mark   |   Mull  |   4.2  |
-------------------------------------

这是我对数据库的PHP语句的摘要。

$stmt = $conn->prepare('SELECT offerdate,price FROM offers WHERE pid=? AND status=?');
$o = 'o';
$stmt->bind_param('is', $_POST['pid'],$o);
$stmt->execute();
$stmt->bind_result($offerdate,$price);

我需要的另一条陈述

$stmt = $conn->prepare('SELECT fname,lname,rating, FROM users WHERE uid=?');
$stmt->bind_param('i', );
$stmt->execute();
$stmt->bind_result($fname,$lname,$rating);

任何帮助都会很棒,谢谢!

php mysql join
2个回答
0
投票

执行连接两个表的单个查询。

SELECT offerdate, price, fname, lname, rating
FROM offers
INNER JOIN users ON users.uid = offers.uid
WHERE offers.pid = ? AND offers.status = ?

0
投票

您可以通过联接在一个查询中获得该结果:

select
    o.offerdate,
    o.price
    u.fname,
    u.lname,
    u.rating
from offers o
inner join users u on u.uid = o.uid 
where o.pid = ? and o.status = ?
© www.soinside.com 2019 - 2024. All rights reserved.