0

您好,我需要一些关于我正在从事的项目的帮助。

我有一个包含大量记录的数据库。我需要将一些记录放入变量中以制作图表。到目前为止,以下是我的代码的一部分。

 //Retrieve all data from the table
 $result=mysql_query("SELECT * FROM solar_panel ORDER BY id DESC") or     die(mysql_error());

$row = mysql_fetch_row($result);
$row1 = mysql_fetch_row($result);
$row2 = mysql_fetch_row($result);
$row3 = mysql_fetch_row($result);
$row4 = mysql_fetch_row($result);
$row5 = mysql_fetch_row($result);
$row6 = mysql_fetch_row($result);
$row7 = mysql_fetch_row($result);
$row8 = mysql_fetch_row($result);
$row9 = mysql_fetch_row($result);
$row10 = mysql_fetch_row($result);
$row11 = mysql_fetch_row($result);
$row12 = mysql_fetch_row($result);
$row13 = mysql_fetch_row($result);
$row14 = mysql_fetch_row($result);
$row15 = mysql_fetch_row($result);
$row16 = mysql_fetch_row($result);
$row17 = mysql_fetch_row($result);
$row18 = mysql_fetch_row($result);
$row19 = mysql_fetch_row($result);
$row20 = mysql_fetch_row($result);
$row21 = mysql_fetch_row($result);
$row22 = mysql_fetch_row($result);
$row23 = mysql_fetch_row($result);
$row24 = mysql_fetch_row($result);

如您所见,这将变得很大,我需要按降序将每 5 行放入一个单独的变量中,但我知道的唯一方法是将所有行放入单独的变量中,然后在图形数据中使用第 5 行。

我想对大约 60 条记录执行此操作,因此要写出所有记录,我必须编写上述代码 300 次。有没有更快的方法来做到这一点。

我试过做一个循环,但不能让变量随着选择的每一行而增加。

任何帮助将不胜感激,或者我写了很多代码

4

4 回答 4

2

仅查询第 5 行

如果您只对第 5 行感兴趣,则只从数据库请求该行:

SELECT * FROM solar_panel ORDER BY id DESC LIMIT 4, 1

索引LIMIT从零开始,因此第 5 行的索引为 4。

每 5 行查询一次

如果你想要每 5 行然后使用这个更复杂的查询:

SELECT * FROM
   (SELECT *,
           @row := @row + 1 AS rowNumber FROM solar_panel,
           (SELECT @row := 0) AS var
           ORDER BY id DESC
   )
AS ordered WHERE rowNumber % 5 = 0
于 2013-08-10T07:52:37.067 回答
1

试试下面的代码:</p>

for($i = 0; $i < $count; ++$i){
    $varname = 'row'.$i;
    $$varname = mysql_fetch_row($result);
}

希望有所帮助!

于 2013-08-10T07:43:12.177 回答
0
$limit=60;
$fifth=1;
$arrRow=array();
while($row = mysql_fetch_row($result)){
 if(($fifth%5)==0)
 $arrRow[]=$row;
 $fifth++;
 if($fifth==limit)
 break;
}
//now you have every fifth row in $arrRow
foreach($arrRow as $row){
 //handle the data as per your need
}
于 2013-08-10T07:53:32.740 回答
0

改为执行以下操作:

while ($row = mysql_fetch_row($result))
{
    $rows[] = $row;
}

然后,您基本上会将每一行放在不同的变量中,除了它们都将在 array 中“组合在一起” $rows,让您可以轻松地计算它们、循环它们、随机播放它们等等。要访问它们,$row23您可以使用. 而不是$rows[23].

于 2013-08-10T07:56:01.353 回答