繁体   English   中英

PHP的SQL,分配变量到数组的每一行

[英]php sql, assign variable to each row of an array

我有一个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'];' 返回第八排的季后赛种子? 再次空白。

我觉得这两个问题联系在一起,因为我想我可以使用变量(即$ 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)的数组。

我仍然不确定您要如何存储数据,但是我希望这对您有帮助

$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
........
......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM