php - mysql_fetch_assoc() 的结果将旧值复合到新值上。有任何想法吗?

标签 php mysql

我将从问题开始。我正在循环调用 mysql_fetch_assoc() 来显示一行中的所有字段。每一次新的传递都会给我新的行加上旧的行值。它复合了每一次传递。我尝试了很多方法,浏览了很多帖子和论坛,但还没有找到我需要解决的问题。任何帮助表示赞赏。

编辑:抱歉,我发布问题后缩进变得困惑。

这是 MySQL 表脚本:

CREATE TABLE pay_hours
(
    _key        int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    _userNumber     int(11),
    _hoursWorked    double
);

CREATE TABLE pay_dates
(
    _key        int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    _userNumber int(11),
    _dateWorked date    
);

这是查询:

$query = "SELECT h._userNumber, d._dateWorked, h._hoursWorked FROM pay_hours h, pay_dates d WHERE d._userNumber=h._userNumber ORDER BY d._dateWorked DESC";  // gets the user, hours and dates and displys most recent dates first.

$result = $keyFrameObject->Execute($query);  // wrapper for mysql_query()

这是循环:

$row = mysql_fetch_assoc($result);

while ($row)
{
    $table .= "<tr>";

    foreach ($row as $field)
    {
        $table .= "<td>" . $field . "</td>";
    }

    $table .= "</tr>";
    $row = mysql_fetch_assoc($result);
}

这是一个 PHP 页面,我最终将回显使用此数据创建的表。我输入 dateWorked 和 hoursWorked 的值,同时使用相同的 userNumber 值进行测试。以下是一些示例输入和输出(使用 var_dump($row) ):

输入:

date = 2011-08-05
hours = 1

输出:

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "1" } 

现在页面已回发,我将输入一组新值:

输入:

date = 2011-08-04
hours = 5

输出(未格式化):

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "5" } array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "1" } array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "1" } array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "5" } 

输出(格式化):

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "5" } 

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-05" ["_hoursWorked"]=> string(1) "1" } 

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "1" } 

array(3) { ["_userNumber"]=> string(3) "333" ["_dateWorked"]=> string(10) "2011-08-04" ["_hoursWorked"]=> string(1) "5" } 

每次我输入值并运行代码时,它都会进一步复杂化。我相信问题是循环,但我不确定。不知何故, $row 在回发后仍保持值(value)。

再次感谢您的帮助,如果需要更多信息,请告诉我。

最佳答案

更改 $table .= "";到 $table = "";

.= 保留之前循环中 $table 的值。

关于php - mysql_fetch_assoc() 的结果将旧值复合到新值上。有任何想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6963369/

相关文章:

mysql - 是medium text数据类型会占用16MB,如果我的记录数据是50KB左右

mysql - Rails 3 Mysql rake 数据库 :create issue

php - 在网络应用程序中收集熵以创建(更)安全的随机数

php - 无法在 PHP 5.6 中打印文件(仍然)?

php - Magento 缓存两次添加内容

php - 我无法获得完整的 slug/post 路线

mysql - SQL随机4行具有不同的列

javascript - Jquery 表排序不适用于图像

php - 如何隐藏根据先前搜索显示的先前表格行

mysql - 无法连接到 Mac 上的 MySQL Workbench。无法连接到 '127.0.0.1' 上的 MySQL 服务器 (61) Mac Macintosh