php sql,为数组的每一行赋值

时间:2014-05-29 16:23:50

标签: php arrays variables

我有一个mysqli_query,可以从我的表中提取3列和10行。我想为查询的每一行分配一个变量。我可以做10个单独的查询,并将每个分配给一个变量,但我认为这将是不受欢迎的。 (注意:单独文件中的连接信息,此处未显示)。

<?php

$playoffseedings = mysqli_query($con, "SELECT playoffseed, ttName, ttsUID
                                FROM standings
                                WHERE ttsUID = $season_view
                                AND playoffseed > 0
                                ORDER BY playoffseed
                                LIMIT 10");

$seedings = array($playoffseedings);

    FOREACH($seedings as $ps){ 
        $num_rows = 1;
        while($row = mysqli_fetch_array($ps)){
            $num_rows++;
            echo $row['playoffseed'].$row['ttName'];
            echo "<br>";
    }}
?>

上面使用的FOREACH工作正常并返回我查询的10行数据。这太酷了。但我需要能够在我的页面上的不同位置显示不同的行。所以我认为将每一行分配给一个不同的变量会很好。

我尝试添加这样的东西给每一行分配一个变量,这样我就有10个不同的变量$ seed1,$ seed2,$ seed3 ......,每个$ seedx都是playoffseed的数组,ttName,和ttsUID。

FOREACH($seedings as $ps){ 
        $num_rows = 1;
        while($row = mysqli_fetch_array($ps)){
            $num_rows++;
            $seed$num_rows = $row[$num_rows];
}}

我想知道如何做到这一点,但是,我也很困惑,为什么我不能使用像

这样的数组回显一行中的一行
echo $seedings[1];
echo $seedings[7]['playoffseed'];

为什么不'回应$ seedings [1];'返回$ seedings数组第二行的结果?我有一个空白。

为什么不能'回应$ seedings [7] ['playoffseed'];'回到第8排的季后赛?再次,空白。

我觉得这两个问题是捆在一起的,因为我以为我可以使用变量(即$ seed3)引用我想要的数据,或者我可以使用索引引用我需要的数据(数组的键?)(即$ seedings [7] ['playoffseed'])。

第一篇文章!谢谢您的帮助。通常在搜索几个小时后总能找到我需要的东西。经过几天的观察,坚持了这个。

编辑(试图澄清): 我的查询返回一个表(多维数组?),像这样......

ttsUID     ttName     playoffseed
1993       Buffalo    1
1993       Miami      2
1993       Detroit    3
1993       Denver     4
1993       Chicago    5
...and so on.  10 rows total

在调用该查询后,我想设置变量($ seedx),例如......

$seed1 = (1993, Buffalo, 1)
$seed2 = (1993, Miami, 2)
$seed3 = (1993, Detroit, 3)
...and so on until $seed10

因此每个$ seedx变量都是从多维数组中提取的数组。这就是它。

或者我可以向数据库发出10个单独的查询,并且每次都增加'AND playoffseed = 1'......

$seed1 = mysqli_query($con, "SELECT playoffseed, ttName, ttsUID
                            FROM standings
                            WHERE ttsUID = $season_view
                            AND playoffseed = 1");

$seed2 = mysqli_query($con, "SELECT playoffseed, ttName, ttsUID
                            FROM standings
                            WHERE ttsUID = $season_view
                            AND playoffseed = 2");

但我不认为10次查询数据库是可行的方法。

最后我希望得到10个变量($ seed1,$ seed2,... $ seedx),每个变量都是一个包含(ttsUID,ttName,playoffseed)的数组。

1 个答案:

答案 0 :(得分:0)

我仍然不确定你想如何存储数据,但我希望这可以帮助你

$playoffseedings = mysqli_query($con, "SELECT playoffseed, ttName, ttsUID
                                FROM standings
                                WHERE ttsUID = $season_view
                                AND playoffseed > 0
                                ORDER BY playoffseed
                                LIMIT 10");

while($row = mysqli_fetch_assoc($playoffseedings))
{
 $seed[$row['ttName']] = $row['ttsUID'];
 $seed[$row['playoffseed']] = $row['ttsUID'];
}

这将有如下数据

(例如)

$seed['ttname123']= ttsuid123
$seed['playoffseed123']= ttsuid123
$seed['ttname456']= ttsuid456
$seed['playoffseed456']= ttsuid456
........
......