0

我有一个 mysql 连接,它从两个名为 product 和 cart 的表中提取,它们都从变量 $row_checkout 中提取

如果我必须回显某个字段,我通常可以使用 $row_checkout['cartid'] 并且效果很好。

但是,我在每个表中都有一个称为相同“状态”的列。

我如何从其中一张表中回显?我认为像 $row_checkout['cart.status'] 这样的东西可能会起作用,但它似乎不起作用?

我的数据库代码如下:

$colname_checkout = "-1";
if (isset($row_booking['sessionid'])) {
  $colname_checkout = (get_magic_quotes_gpc()) ? $row_booking['sessionid'] : addslashes($row_booking['sessionid']);
}
mysql_select_db($database_main, $main);
$query_checkout = sprintf("SELECT * FROM cart, productdatabase WHERE cart.productid = productdatabase.productid AND cart.status != 1 AND cart.status != 0 AND cart.sessionid = '%s' ORDER BY `name` ASC", $colname_checkout);
$checkout = mysql_query($query_checkout, $main) or die(mysql_error());
$row_checkout = mysql_fetch_assoc($checkout);
$totalRows_checkout = mysql_num_rows($checkout);
4

2 回答 2

1

您可以使用别名将表字段名称更改为您想要的名称。

cart.status 过滤器,你可以通过询问 > 1 来变得更简单、更简单

SELECT c.status as car_status, pro.status as pro_status 
FROM cart as c, productdatabase as pro
WHERE c.productid = pro.productid AND c.status >1 AND c.sessionid = '%s' 
ORDER BY `name` ASC", $colname_checkout

看到你得到什么,它将显示一个包含所有名称和值的关联数组,你可以用它来处理数据

while ($row_checkout = mysql_fetch_assoc($checkout)) {
    print_r($row_checkout);
}

或特定领域:

while ($row_checkout = mysql_fetch_assoc($checkout)) {
    echo $row_checkout["car_status"];
    echo $row_checkout["pro_status"];
}

另一条评论,不再推荐使用 mysql 功能。您可以使用 MySQLi 或 PDO_MySQL。它们都是面向对象的,可能需要更多时间来学习。

于 2013-07-19T09:51:27.100 回答
0

使用alias.

参考: http ://www.tutorialspoint.com/sql/sql-alias-syntax.htm

 $query_checkout = 
 sprintf("SELECT *,**cart.status AS cart_status, productdatabase.status as
 pdb_status** FROM  cart, productdatabase WHERE
 cart.productid = productdatabase.productid AND
 cart.status != 1 AND cart.status != 0 
 AND cart.sessionid = '%s' ORDER BY `name` ASC", $colname_checkout);
于 2013-07-19T09:51:19.160 回答