我要做的是: 类别 (项目)匹配 id < / strong> (市场)回显 类别 (市场)。
表1示例(项目表)
表2示例(市场表)
PHP代码示例
"nome"=>'"'.$row_Articoli['NomeArticolo'].'"'
在我的下面的代码中,我尝试在while循环中放置一个while循环,因为我们必须找出它所在的类别然后为每个博客帖子显示它。
它只适用于第一个结果,然后我在网上进行了一些研究,发现这样做的设计很差。
我目前正在显示结果(请参阅连字符之间的代码):
[{"id":"878","0":"ACCESSORIO PULIZIA PUNTE DISSALDANTE 3 MISURE","quantita":"1","codiceBarre":"DN-705100","codartFornitore":"DN-705100","PrezzoAttuale":"14.39","prezzoRivenditore":null,"prezzoIngrosso":null},
{"id":"318","0":"ACCOPPIANTORE RJ11 TELEFONICO VALUELINE VLTP90920W","quantita":"20","codiceBarre":"5412810196043","codartFornitore":"5412810196043","PrezzoAttuale":"0.68","prezzoRivenditore":null,"prezzoIngrosso":null},
{"id":"320","0":"ACCOPPIATORE AUDIO RCA VALUELINE VLAB24950B","quantita":"5","codiceBarre":"5412810214136","codartFornitore":"5412810214136","PrezzoAttuale":"1.29","prezzoRivenditore":null,"prezzoIngrosso":null},
{"id":"310","0":"ACCOPPIATORE RJ45 VALUELINE VLCP89005W","quantita":"8","codiceBarre":"5412810228843","codartFornitore":"5412810228843","PrezzoAttuale":"0.38","prezzoRivenditore":null,"prezzoIngrosso":null},
{"id":"311","0":"ACCOPPIATORE USB2 VALUELINE VLCP60900B","quantita":"5","codiceBarre":"5412810179596","codartFornitore":"5412810179596","PrezzoAttuale":"1.80","prezzoRivenditore":null,"prezzoIngrosso":null}]
希望我已经足够彻底而不会混淆。菜鸟怎么能做到这一点?我会接受你的任何指示!!
答案 0 :(得分:1)
如果使用连接,则可以在一个查询中获取类别文本,并避免在PHP中进行所有循环。
LEFT Join将返回Projects中的所有记录,并仅返回与市场匹配的记录。因此,如果市场中不存在项目类别,则将返回NULL值。
如果您使用了INNER JOIN,则只返回在BOTH表中具有相应值的记录。
经验法则:在您需要的时候,在一次旅行中从数据库中获取所需的数据。 PHP中的格式,SQL中的Datagrab。不要超过你的需要,也不要少花钱。
SELECT P.Job, M.ID as Markets_ID, M.Category, P.Title
FROM projects P
LEFT JOIN Markets M
on P.Category =M.ID
WHERE P.category='$category'
LIMIT $start_from, $num_rec_per_page"
注意:您需要在where子句中的类别上放置一个表别名。我假设您传入ID,因此使用了P.Category。
答案 1 :(得分:0)
您是否希望按类别连接表项目? 也许你可以做到这一点
SELECT p.id as id
, m.category as category
from projects as p
left
join markets as m
on p.category = m.id
WHERE m.category='$category'
LIMIT $start_from
, $num_rec_per_page