PHP-从MySQL数据库提取数据并放入多维数组
我试图在数据库的行中循环(在本例中为玩家)并收集他们的分数。数据库的列表示不同的位置,每个位置的玩家都有一个得分值。由于一个队形中的列数多于位置数,因此查询必须仅选择给定队形中的11列($most_common_formation)。在将分数放入多维数组之前,必须将分数乘以玩家“total_picks”列中的相应值 最后一个数组应该包含25名玩家作为数组,在每个数组中显示“全名”以及11个分数,这些分数乘以“总分数” $team数组保存所有玩家的“全名” 请帮帮我,我快疯了PHP-从MySQL数据库提取数据并放入多维数组,php,mysql,arrays,Php,Mysql,Arrays,我试图在数据库的行中循环(在本例中为玩家)并收集他们的分数。数据库的列表示不同的位置,每个位置的玩家都有一个得分值。由于一个队形中的列数多于位置数,因此查询必须仅选择给定队形中的11列($most_common_formation)。在将分数放入多维数组之前,必须将分数乘以玩家“total_picks”列中的相应值 最后一个数组应该包含25名玩家作为数组,在每个数组中显示“全名”以及11个分数,这些分数乘以“总分数” $team数组保存所有玩家的“全名” 请帮帮我,我快疯了 // Create
// Create array to hold final scores per player
$player_scores = array();
// Loop through all players in $team array
for ($l=0; $l < 25; $l++) {
// SELECT each players scores per position in $most_common_formation
$players_picks_query = "SELECT
?,
total_picks,
?,
?,
?,
?,
?,
?,
?,
?,
?,
?,
?
FROM table";
// prepare and bind statement
$stmt = mysqli_prepare($conn, $players_picks_query) or die(mysqli_error($conn));
mysqli_stmt_bind_param($stmt, 'ssssssssssss', $player_name, $pos1, $pos2, $pos3, $pos4, $pos5, $pos6, $pos7, $pos8, $pos9, $pos10, $pos11);
$player_name = $team[$l];
$pos1 = $most_common_formation[0];
$pos2 = $most_common_formation[1];
$pos3 = $most_common_formation[2];
$pos4 = $most_common_formation[3];
$pos5 = $most_common_formation[4];
$pos6 = $most_common_formation[5];
$pos7 = $most_common_formation[6];
$pos8 = $most_common_formation[7];
$pos9 = $most_common_formation[8];
$pos10 = $most_common_formation[9];
$pos11 = $most_common_formation[10];
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
foreach ($row as $r) {
echo "$r ";
}
echo "<br>";
}
// close statement
mysqli_stmt_close($stmt);
}
//创建数组来保存每个玩家的最终分数
$player_分数=数组();
//循环遍历$team数组中的所有玩家
对于($l=0;$l<25;$l++){
//选择每个球员在$most_common_队形中每个位置的得分
$players\u picks\u query=“选择
?,
总采摘数,
?,
?,
?,
?,
?,
?,
?,
?,
?,
?,
?
“从表中”;
//准备并绑定语句
$stmt=mysqli\u prepare($conn,$players\u picks\u query)或die(mysqli\u error($conn));
mysqli_stmt_bind_param($stmt,$ssss',$player_name,$pos1,$pos2,$pos3,$pos4,$pos5,$pos6,$pos7,$pos8,$pos9,$pos10,$pos11);
$player_name=$team[$l];
$pos1=$most_common_formation[0];
$pos2=$most_common_formation[1];
$pos3=$most_common_formation[2];
$pos4=$most_common_formation[3];
$pos5=$most_common_formation[4];
$pos6=$most_common_formation[5];
$pos7=$most_common_formation[6];
$pos8=$most_common_formation[7];
$pos9=$most_common_formation[8];
$pos10=$most_common_formation[9];
$pos11=$most_common_formation[10];
mysqli_stmt_execute($stmt);
$result=mysqli\u stmt\u get\u result($stmt);
而($row=mysqli\u fetch\u数组($result,mysqli\u NUM)){
foreach($r行){
回声“$r”;
}
回声“
”;
}
//结束语
mysqli_stmt_close($stmt);
}
不能使用吗?作为select(选择姓名,年龄)的占位符,仅在WHERE name=?,age=?我为什么不能这样做?我听到你问!因为prepare
会将查询发送到数据库,然后在那里对其进行编译和优化等。现在,如果数据库不知道要检索哪些列。。A) 它不能编译它,B)它绝对不能优化它并生成一个计划