如何将MySQL表行分配给不同的变量?

时间:2012-09-04 17:42:51

标签: php mysql database

我的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 个答案:

答案 0 :(得分:0)

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

就个人而言,我会迭代它并创建一个sub_id =>的数组。字段,所以像

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

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

答案 1 :(得分:0)

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

以下是你获得每个项目的方法,你必须循环,因为它的结果,设置。

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

等等..

答案 2 :(得分:0)

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

$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
    }
}

另外,请阅读this page以帮助您选择要使用的内容,而不是已弃用的mysql_*函数。

答案 3 :(得分: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()。