php - undefined offset : -1 PDO in for loop

标签 php mysql

我使用pdo连接mysql数据库并使用PDO::FETCH_ASSOC函数..获取ASSOC数组..

但是当运行代码时,会出现多行错误。

Undefined offset: -1 or Undefined offset: 61

if($pays[$i]['price'] < $pays[($i-1)]['price'])

elseif($pays[$i]['price'] > $pays[($i-1)]['price'])

.$pays[$i]['price'].

我的完整代码

<?php

$params        = null; //or any params
$mrkfPDO       = new PDO('mysql:host=localhost;dbname=usd', 'root', '', array(
    PDO::ATTR_PERSISTENT => true,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
));
$mrkfStatement = $mrkfPDO->prepare("SELECT price FROM uds limit 0,100");
$mrkfStatement->execute($params);
$pays = $mrkfStatement->fetchAll(PDO::FETCH_ASSOC);

for ($i = 0; $i <= count($pays); $i++) {

    $color = 'black';

    if ($pays[$i]['price'] < $pays[($i - 1)]['price'])
        $color = "red";
    elseif ($pays[$i]['price'] > $pays[($i - 1)]['price'])
        $color = 'green';
    else
        $color = 'black';

    echo "<tr>
                        <td>
                            <span style='color: $color'>" . $pays[$i]['price'] . "</span>
                        </td>
                      </tr>";
}

?>

最佳答案

问题是$i = 0。第一次 $i = 0 母鸡 $pays[($i-1)]['price'] 给出 -1 索引,该索引始终为偏移误差。如下所示:-

for($i=1; $i<count($pays); $i++) // see the change

关于php - undefined offset : -1 PDO in for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31497960/

相关文章:

javascript - 当数据表输入来自服务器的 JSON 数据时更改 Google Chart 条形颜色

插入前检查表中重复记录的Mysql触发器

php - 使用 php 将 CSV 存入数据库

MYSQL匹配csv关键字列

php - 这只会允许某些扩展吗?

php - 使用 Laravel 将图像转换为 base 64 字符串

mysql - 有没有办法加速或替换 LIKE 搜索查询?

MySQL 触发器能力

php - 从 PHP 发送 HTTP 请求而不等待响应?

php - 在 MySQL 和 CodeIgniter 中使用 Match 和 Against