首页 > 解决方案 > MySQL Query with Returned Variables associated with Iterative Numeric Variables For-Loops

问题描述

I'm trying to dynamically return rows from the database with the variable from each row being associated with a numerically named variable. I have been able to code like the following but is there a way to do this with For Each or something similar?

$sql1 = "SELECT rate, date FROM MyTable WHERE number='1'";
$result1 = mysqli_query($con,$sql1) or die ("Query error: " . mysqli_error());
while($row1 = mysqli_fetch_assoc($result1)) { 
    $rate1=$row1['rate'];
    $date1=$row1['date'];
}


$sql2 = "SELECT rate, date FROM MyTable WHERE number='2'";
$result2 = mysqli_query($con,$sql2) or die ("Query error: " . mysqli_error());
while($row2 = mysqli_fetch_assoc($result2)) { 
    $rate2=$row2['rate'];
    $date2=$row2['date'];
}

Ie like the following:

    $sqlALL = "SELECT rate, date FROM MyTable";

标签: phpmysqlfor-loopmysqliiteration

解决方案


而不是使用数字变量,使用数组使这更简单(恕我直言)。所以从表中获取数字并将其用作结果数组的索引......

$sql1 = "SELECT number, rate, date FROM MyTable ORDER BY number";
$result1 = mysqli_query($con,$sql1);
$rate = [];
$date = [];
while($row1 = mysqli_fetch_assoc($result1)) { 
    $rate[$row1['number']]=$row1['rate'];
    $date[$row1['number']]=$row1['date'];
}

或一次按一行索引它们...

$sql1 = "SELECT number, rate, date FROM MyTable ORDER BY number";
$result1 = mysqli_query($con,$sql1);
$results = [];
while($row1 = mysqli_fetch_assoc($result1)) { 
    $results[$row1['number']]=$row1;
}

推荐阅读