【问题标题】:How do i display required fields from inner joined tables如何显示内部联接表中的必填字段
【发布时间】:2016-01-09 14:53:48
【问题描述】:
 $q= mysql_query("SELECT 
                `products`.product, 
                `products`.price, 
                `cart`.product, 
                `cart`.userid 
                FROM `products` 
                INNER JOIN `cart` ON `cart`.product=`products`.product") or die('Error: ' . mysql_error());

while($d=mysql_fetch_array($q))
{
echo "<td >";echo "<br><b> Product: </b>$d[2]";echo "</td>";
echo "<td >";echo "<b>  Price: </b>$d[1]<br>";echo "</td>";
}

这显示表格 - 产品和购物车的内部连接结果。 产品表有产品,价格和购物车表有用户ID,产品。 如何通过在 userid= $us 的内部联接表中列出行来显示登录用户的 $us 订购的产品???

【问题讨论】:

  • 使用ORDER BY。顺便问一下,你之前的第一个问题怎么样?

标签: php mysql sql xampp


【解决方案1】:

使用这个mysql查询

SELECT `products`.product, `products`.price, `cart`.product, `cart`.userid FROM `products` INNER JOIN `cart` ON `cart`.product=`products`.product where cart.userid= $us  order by `products`.product ASC

【讨论】:

    【解决方案2】:
    $sql='select 
        p.`product`, p.`price`, c.`product`, c.`userid`
        from `products` p
        left outer join `cart` c on c.`product`=p.`product`
        where c.`userid`="'.$us.'"';
    
    $q=mysql_query( $sql ) or die('error: '.mysql_error() );
    

    为每个表分配一个别名可以使最终的 sql 更短,并且在我看来更易于阅读。

    也就是说,由于 PHP 中的 mysql_ 函数套件现在已被弃用并被认为不安全,也许您应该将代码迁移到 mysqliPDO 以避免可能的 sql 注入 同样注意,通过使用die('error:'.mysql_error()) 如果出现错误,您会向潜在的攻击者透露更多信息,更不用说页面的其余部分无法正常加载/降级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      相关资源
      最近更新 更多