Php 如果表mysqli中的列相同,如何计算x行和y行

Php 如果表mysqli中的列相同,如何计算x行和y行,php,mysqli,Php,Mysqli,如何计算第1行和第4行同一列 我的代码: $qR1 = mysqli_query($con, "SELECT * FROM tbproduct WHERE nameproduct = '".$product."'"); while( $res1 = mysqli_fetch_assoc($qR1)){ $qR2 = mysqli_query($con, "SELECT * FROM tbvalproduct WHERE nameproduct = '".$res1['product'].

如何计算第1行和第4行同一列

我的代码:

$qR1 = mysqli_query($con, "SELECT * FROM tbproduct WHERE nameproduct = '".$product."'");
while( $res1 = mysqli_fetch_assoc($qR1)){
    $qR2 = mysqli_query($con, "SELECT * FROM tbvalproduct WHERE nameproduct = '".$res1['product']."' ");
    while($res2 = mysqli_fetch_assoc($qR2)){
        echo $res2['product']."=".$res2['value']."<br>";
    }

}
我想要的是:

-row 1 + row 4 // 1500000 + 1000000
-row 2 + row 5 // 1400000 + 900000
-row 3 + row 6 // 1300000 + 800000
样本表:

Id      product       value
---------------------------    
1    product1       1500000
2    product1       1400000
3    product1        1300000
4    product2        1000000
5    product2         900000
6    product2         800000

我不是很确定,但我想这就是你要找的

$sql = "SELECT p1.value 'tbproduct_value', p2.value 'tbvalproduct_value' 
    FROM tbproduct p1 join tbvalproduct p2 on p1.nameproduct = p2.nameproduct
    WHERE nameproduct = '".$product."'";

$q = mysqli_query( $con, $sql );
while( $res = mysqli_fetch_assoc( $q ) ){
    echo $res['product']."=".$res['tbproduct_value']. $res['tbvalproduct_value'] . "<br>";
}
$sql=“选择p1.value‘tbproduct_值’,p2.value‘tbvalproduct_值”
从tbproduct p1连接p1.nameproduct=p2.nameproduct上的tbvalproduct p2
其中nameproduct='“$product.”;
$q=mysqli_查询($con,$sql);
而($res=mysqli\u fetch\u assoc($q)){
echo$res['product']。“=”$res['tbproduct_value']。$res['tbvalproduct_value']。”
“; }
请随时更新


干杯

只需一个查询即可:

SELECT t1.product, t1.value
FROM tbvalproduct t1
INNER JOIN tbproduct t2
    ON t1.nameproduct = t2.product
WHERE
    t2.nameproduct = ?;
更新的PHP代码:

$sql = "SELECT t1.product, t1.value FROM tbvalproduct t1 INNER JOIN tbproduct t2 ";
$sql .= "ON t1.nameproduct = t2.product WHERE t2.nameproduct = ?";

if ($stmt = $mysqli->prepare($sql)) {
    $stmt->bind_param("s", $product);
    $stmt->execute();
    $result = $stmt->get_result();

    while ($row = $result->fetch_assoc()) {

        echo $row['product']."=".$row['value']."<br>";
    }

   $stmt->free_result();
   $stmt->close();
}
$sql=“从tbvalproduct t1内部连接tbproduct t2中选择t1.product、t1.value”;
$sql.=“ON t1.nameproduct=t2.product,其中t2.nameproduct=?”;
如果($stmt=$mysqli->prepare($sql)){
$stmt->bind_参数(“s”,$product);
$stmt->execute();
$result=$stmt->get_result();
而($row=$result->fetch_assoc()){
echo$row['product']。“=”$row['value']。“
”; } $stmt->free_result(); $stmt->close(); }
我不明白你在找什么。第1行和第3行同一列是什么意思?你能提供表结构和数据样本吗?对不起..我是第一次来这个论坛..所以我很困惑问..尽可能使用准备好的语句。对不起,先生,我尝试使用你的代码,但我得到通知警告*翅片不足的函数准备…@wisnusetiyanto因为这个答案使用OOP设计模式,您需要将
$mysqli->
替换为
$con->
,以从
mysqli\u connect()
匹配您的mysqli对象,否则请调整。对不起,先生,我的错误。。我得到的结果…但这个结果像循环。。。如何计算示例第1行+第4行
$sql = "SELECT t1.product, t1.value FROM tbvalproduct t1 INNER JOIN tbproduct t2 ";
$sql .= "ON t1.nameproduct = t2.product WHERE t2.nameproduct = ?";

if ($stmt = $mysqli->prepare($sql)) {
    $stmt->bind_param("s", $product);
    $stmt->execute();
    $result = $stmt->get_result();

    while ($row = $result->fetch_assoc()) {

        echo $row['product']."=".$row['value']."<br>";
    }

   $stmt->free_result();
   $stmt->close();
}