获取PHP数组的值

获取PHP数组的值,php,mysql,foreach,while-loop,Php,Mysql,Foreach,While Loop,下面是php中的查询,我想从数组中提取值,并想在带有ING foreach循环的函数中使用它们。但是我从数组中得到的值是错误的。我不知道这里出了什么问题,因为我是PHP的新手 $sql="SELECT * FROM `mlm_pending_transactions` WHERE member_id = $_SESSION[member_id] and cycle=$cycle_number and credited=0 and order_type='upgrade_commission_ca

下面是php中的查询,我想从数组中提取值,并想在带有ING foreach循环的函数中使用它们。但是我从数组中得到的值是错误的。我不知道这里出了什么问题,因为我是PHP的新手

$sql="SELECT * FROM `mlm_pending_transactions` WHERE member_id = $_SESSION[member_id] and cycle=$cycle_number and credited=0 and order_type='upgrade_commission_cash'";
$result=mysql_query($sql);                                                                  
while($data_set = mysql_fetch_array($result))
{                                                                            
   foreach($data_set as $cash_pendings)
   {
      echo $cash_pendings["member_id"]."</br>";
      echo $cash_pendings['tran_amount']."</br>";
      echo $cash_pendings['tran_particulars']."</br>";
      echo $cash_pendings['id'];
    }
}
$sql=“从“传销未决交易”中选择*,其中成员id=$\u会话[成员id]和周期=$cycle\u number and credited=0,订单类型为升级\佣金\现金”;
$result=mysql\u查询($sql);
而($data\u set=mysql\u fetch\u array($result))
{                                                                            
foreach($data_设置为$cash_pendings)
{
echo$cash_pendings[“会员id”]。“
”; echo$cash_pendings[“交易金额”]。“
”; echo$cash_pendings[“交易详情”]。“
”; echo$cash_pendings['id']; } }
您只需要mysql\u fetch\u array()返回的数组中的值

$sql=“从“传销未决交易”中选择*,其中成员id=$\u会话[成员id]和周期=$cycle\u number and credited=0,订单类型为升级\佣金\现金”;
$result=mysql\u查询($sql);
而($data\u set=mysql\u fetch\u array($result))
{                                                                        
echo$data_set[“成员id”]。“
”; echo$data_set[“交易金额”]。“
”; echo$data_set[“交易详情”]。“
”; echo$data_set['id']; }
注意:如果字段名错误(区分大小写),则不会返回值

如果不确定,可以使用print_r($data_set)检查返回的字段名

编辑-实际错误的更改

绝对最小值。注意:未测试,因此可能有一些拼写错误

<?php

$sql="SELECT * 
    FROM `mlm_pending_transactions` 
    WHERE member_id = $_SESSION[member_id] 
    AND cycle = $cycle_number 
    AND credited = 0 
    AND order_type = 'upgrade_commission_cash'";
$result = mysql_query($sql);   

while($data_set = mysql_fetch_array($result))
{                                                                        
      echo $data_set["member_id"]."</br>";
      echo $data_set['tran_amount']."</br>";
      echo $data_set['tran_particulars']."</br>";
      echo $data_set['id'];

    $date = date("m/d/Y");
    $time = strtotime("now");

    $add_cash = $affiliate->add_fin_tran($data_set["member_id"],
                                $data_set["tran_amount"],
                                0,
                                $data_set["tran_particulars"],
                                "upgrade_commision_cash",
                                1);

    $sql2 = "UPDATE mlm_pending_transactions
        SET credit = 1,
        credited_date = '$date',
        credited_time = '$time'
        WHERE id = ".$data_set["id"];

    $result2 = mysql_query($sql2);

}

?>

帮助我们通过格式化代码来帮助您。另外,“结果错误”也没有用。他们怎么了?(显示_实际的SQL查询运行,并可能显示一些结果)mysql_fetch_数组每次调用时都返回一个数组。数组是查询中的一行数据。因此,要输出的字段位于$data_set数组中,而不是$cash_pendings数组(这不是必需的)。请注意,您使用的mysql_扩展已从PHP版本7中删除。如果您使用的服务器运行PHP7.0或更新版本,您的代码将被破坏。请检查此项以查看我的实际问题。谢谢你的时间。请复制并粘贴到你的浏览器,看看我的问题。谢谢回复。foreach循环不是必需的。它可以直接进入while循环。但是您也在使用$result=mysql\u查询($sql);在while循环中,它将覆盖正在循环的结果集。因此永远也没有达到第二个记录。你能告诉我如何达到我的成绩吗?非常感谢。启动
<?php

$sql="SELECT * 
    FROM `mlm_pending_transactions` 
    WHERE member_id = $_SESSION[member_id] 
    AND cycle = $cycle_number 
    AND credited = 0 
    AND order_type = 'upgrade_commission_cash'";
$result = mysql_query($sql);   

while($data_set = mysql_fetch_array($result))
{                                                                        
      echo $data_set["member_id"]."</br>";
      echo $data_set['tran_amount']."</br>";
      echo $data_set['tran_particulars']."</br>";
      echo $data_set['id'];

    $date = date("m/d/Y");
    $time = strtotime("now");

    $add_cash = $affiliate->add_fin_tran($data_set["member_id"],
                                $data_set["tran_amount"],
                                0,
                                $data_set["tran_particulars"],
                                "upgrade_commision_cash",
                                1);

    $sql2 = "UPDATE mlm_pending_transactions
        SET credit = 1,
        credited_date = '$date',
        credited_time = '$time'
        WHERE id = ".$data_set["id"];

    $result2 = mysql_query($sql2);

}

?>
<?php

$sql = "SELECT * 
    FROM `mlm_pending_transactions` 
    WHERE member_id = ?
    AND cycle = ?
    AND credited = ? 
    AND order_type = ?";
$statement = mysqli_prepare($db_connection, $sql); 
mysqli_stmt_bind_param($statement, 'iiis', $_SESSION['member_id'], $cycle_number, 0, 'upgrade_commission_cash');
mysqli_execute($statement);   
$result = mysqli_get_result($statement);   

while($data_set = mysqli_fetch_array($result, MYSQLI_ASSOC))
{                                                                        
      echo $data_set["member_id"]."</br>";
      echo $data_set['tran_amount']."</br>";
      echo $data_set['tran_particulars']."</br>";
      echo $data_set['id'];

    $date = date("m/d/Y");
    $time = strtotime("now");

    $add_cash = $affiliate->add_fin_tran($data_set["member_id"],
                                $data_set["tran_amount"],
                                0,
                                $data_set["tran_particulars"],
                                "upgrade_commision_cash",
                                1);

    $sql2 = "UPDATE mlm_pending_transactions
        SET credit = ?,
        credited_date = ?,
        credited_time = ?
        WHERE id = ?";

    $statement2 = mysqli_prepare($db_connection, $sql2);    
    mysqli_stmt_bind_param($statement2, 'issi', 1, $date, $time, $data_set["id"]);
    $result2 = mysqli_execute($statement2);   


}

?>
<?php

$sql = "SELECT * 
    FROM `mlm_pending_transactions` 
    WHERE member_id = ?
    AND cycle = ?
    AND credited = ? 
    AND order_type = ?";
$statement = $db_connection->prepare($sql); 
$statement->bind_param('iiis', $_SESSION['member_id'], $cycle_number, 0, 'upgrade_commission_cash');
$statement->execute();   
$result = $statement->get_result();   

while($data_set = $result->fetch_array(MYSQLI_ASSOC))
{                                                                        
      echo $data_set["member_id"]."</br>";
      echo $data_set['tran_amount']."</br>";
      echo $data_set['tran_particulars']."</br>";
      echo $data_set['id'];

    $date = date("m/d/Y");
    $time = strtotime("now");

    $add_cash = $affiliate->add_fin_tran($data_set["member_id"],
                                $data_set["tran_amount"],
                                0,
                                $data_set["tran_particulars"],
                                "upgrade_commision_cash",
                                1);

    $sql2 = "UPDATE mlm_pending_transactions
        SET credit = ?,
        credited_date = ?,
        credited_time = ?
        WHERE id = ?";

    $statement2 = $db_connection->mysqli_prepare($sql2);    
    $statement2->bind_param('issi', 1, $date, $time, $data_set["id"]);
    $result2 = $statement2->execute();   


}

?>