0

我的 MySQL 表只有 3 列。该列中的数据按 sub_id 编号排序,如下所示:

sub_id | field_name | field_val
1 ------- carname -------ford
1 ------- driver ------- michael
1 ------- licence -------123
2 ------- carname -------bmw
2 ------- driver ------- robert
2 ------- licence -------321

对于使用表格,我有以下代码:

   $link = mysql_connect("xxx", "xxx", "xxx");
   mysql_select_db("xxx");
   mysql_query ('SET NAMES utf8');
   mysql_query ('SET CHARACTER SET utf8');
   $query = "select sub_id,field_name,field_val from wp_cformsdata WHERE sub_id IN ($ID)";
   $result = mysql_query($query);

它通过所需的 ID 给了我一组行。我知道拥有如此凌乱的表格非常不舒服,但它是由插件自动创建的。问题是如何将我得到的每一行分配给不同的变量?我想用这个变量来填充 html 文档。对不起英语不好:)

4

4 回答 4

0

据我所知,您需要像循环一样简单的东西来读取文档的行。

<?php
$link = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
mysql_query ('SET NAMES utf8');
mysql_query ('SET CHARACTER SET utf8');
$query = "select sub_id,field_name,field_val from wp_cformsdata WHERE sub_id IN ($ID)";
$result = mysql_query($query);
while($rows=mysql_fetch_array($result)){
?>
<div> <?php echo $rows['sub_id'];?> </div>
<div> <?php echo $rows['field_name'];?> </div>
<div> <?php echo $rows['field_val'];?> </div>
<?
}
mysql_close();
?>

我希望这有帮助。您也可以使用 mysql_fetch_assoc()。

于 2012-09-04T18:03:50.437 回答
0

你不需要不同的变量。我建议switch在您的 PHP 代码中使用:

$link = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
mysql_query ('SET NAMES utf8');
mysql_query ('SET CHARACTER SET utf8');
$query = "select sub_id,field_name,field_val from wp_cformsdata WHERE sub_id IN ($ID)";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
    switch($row['field_name'])
    {
        case 'carname':
            // do something
            break;
        case 'driver':
            // do something else
            break;
        // add more "case" here
        default:
            // do the default action here
    }
}

此外,请阅读此页面以帮助您选择使用什么而不是弃用的mysql_*功能。

于 2012-09-04T17:50:07.270 回答
0

“相反,应该使用 MySQLi 或 PDO_MySQL 扩展。” 从文档中,您正在使用的那些方法已被弃用。

这是您获取每个项目的方法,您必须循环,因为它是一个结果,设置。

while ($row = mysql_fetch_assoc($result)) {
    $car_name = $row['carname'];
    $driver =  $row['driver'];
}

等等..

于 2012-09-04T17:46:11.000 回答
0

您只需要遍历所有结果,手动将字段名称和 sub_id 与您期望的内容进行比较,然后将结果分配给条件中的变量。

就个人而言,我会对其进行迭代并创建一个 sub_id => 字段数组,因此类似于

while($row = mysql_row($result))
    $users[$row['sub_id']][$row['field_name']] = $row['field_value']

语法是错误的,因为我不记得确切的语法了mysql_*,但你明白了。

于 2012-09-04T17:46:00.407 回答