B列中的返回值表2中,表A列A与表A中的A列相匹配

时间:2017-01-17 13:51:56

标签: php mysql

我要做的是: 类别 (项目)匹配 id < / strong> (市场)回显 类别 (市场)

表1示例(项目表)

projects table

表2示例(市场表)

enter image description here

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}]

希望我已经足够彻底而不会混淆。菜鸟怎么能做到这一点?我会接受你的任何指示!!

2 个答案:

答案 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