获取PHP数组的值
下面是php中的查询,我想从数组中提取值,并想在带有ING foreach循环的函数中使用它们。但是我从数组中得到的值是错误的。我不知道这里出了什么问题,因为我是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
$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();
}
?>