0

我正在尝试破解 WP 插件“Contact Form 7”(带有 DB 扩展名),以便在用户提交表单后根据自己的喜好输出结果。我理解为什么插件必须按照它的方式排列数据库,但我在分离条目时遇到了麻烦。通常我会有一个可以使用的索引,但在这里我没有。

这是我的桌子的样子。

+-----------------+-----------+-----------------+---------------------+-------------+------+
|   submit_time   | form_name |   field_name    |     field_value     | field_order | file |
+-----------------+-----------+-----------------+---------------------+-------------+------+
| 1360190186.3500 | RSVP 2    | text-796        | Mindi               |           0 | NULL |
| 1360190186.3500 | RSVP 2    | text-664        | Smith               |           1 | NULL |
| 1360190186.3500 | RSVP 2    | text-635        | New York            |           2 | NULL |
| 1360190186.3500 | RSVP 2    | menu-359        | A friend of Sarah's |           3 | NULL |
| 1360190186.3500 | RSVP 2    | textarea-518    |                     |           4 | NULL |
| 1360190186.3500 | RSVP 2    | file-29         |                     |           5 | NULL |
| 1360190186.3500 | RSVP 2    | textarea-652    |                     |           6 | NULL |
| 1360190186.3500 | RSVP 2    | Submitted Login | admin               |        9999 | NULL |
| 1360190186.3500 | RSVP 2    | Submitted From  | ::1                 |       10000 | NULL |
| 1360191326.9700 | RSVP 2    | text-796        | Joe                 |           0 | NULL |
| 1360191326.9700 | RSVP 2    | text-664        | Blow                |           1 | NULL |
| 1360191326.9700 | RSVP 2    | text-635        | Somewhere           |           2 | NULL |
| 1360191326.9700 | RSVP 2    | menu-359        | A friend of Bob's   |           3 | NULL |
| 1360191326.9700 | RSVP 2    | textarea-518    |                     |           4 | NULL |
| 1360191326.9700 | RSVP 2    | file-29         |                     |           5 | NULL |
| 1360191326.9700 | RSVP 2    | textarea-652    |                     |           6 | NULL |
| 1360191326.9700 | RSVP 2    | Submitted Login | admin               |        9999 | NULL |
| 1360191326.9700 | RSVP 2    | Submitted From  | ::1                 |       10000 | NULL |
| 1360361333.8800 | RSVP 2    | text-796        | Once                |           0 | NULL |
| 1360361333.8800 | RSVP 2    | text-664        | Again               |           1 | NULL |
| 1360361333.8800 | RSVP 2    | text-635        | Somewhere           |           2 | NULL |
| 1360361333.8800 | RSVP 2    | menu-359        | A friend of Bob's   |           3 | NULL |
| 1360361333.8800 | RSVP 2    | textarea-518    |                     |           4 | NULL |
| 1360361333.8800 | RSVP 2    | file-29         |                     |           5 | NULL |
| 1360361333.8800 | RSVP 2    | textarea-652    |                     |           6 | NULL |
| 1360361333.8800 | RSVP 2    | Submitted Login | admin               |        9999 | NULL |
| 1360361333.8800 | RSVP 2    | Submitted From  | ::1                 |       10000 | NULL |
+-----------------+-----------+-----------------+---------------------+-------------+------+

我的 PHP 有点生疏,所以我想知道迭代唯一唯一字段('submit_time')以隔离条目的最有效方法是什么?

4

2 回答 2

1

我猜你正在使用$result = mysql_query();或类似的东西来获取这些值。然后执行以下操作:

while ($row = mysql_fetch_assoc($result /*or your result varname*/ )) {
    //do the things you want to do
}

$row 现在是一个关联数组,其中包含 mySql 表包含的字段。在您的情况下,您可以使用它来打印field_name-column(只是一个示例):

//inside the while-loop:
echo $row["field_name"]."<br/>";

这样您就可以读取表格的每个条目。循环的每次重复都会增加您正在读出的行号。如果你在最后或有错误,mysql_fetch_assoc()返回false并退出循环。

于 2013-02-13T20:56:49.727 回答
1

我能够通过创建一个具有唯一submit_time字段的数组来解决它,然后循环遍历每个字段,并将其作为查询中的变量。对于那些感兴趣的人来说,这里是结果。

$group = mysql_query('SELECT * FROM wp_cf7dbplugin_submits GROUP BY submit_time');

while ($st = mysql_fetch_row($group)) {
    $myarray[] = $st[0];
}

foreach ($myarray as $value) {
    $query = "SELECT field_value FROM wp_cf7dbplugin_submits WHERE submit_time = ".$value;
    $entry = mysql_query($query);

    while ($row = mysql_fetch_row($entry)) {
        if (!empty($row[0])) {
            echo $row[0];
            echo '<br>';
        }
    }

    echo '<br><br>';
}
于 2013-02-13T22:43:38.527 回答