从数据库表生成的表 - 如何添加£符号?

时间:2011-05-05 09:42:40

标签: php mysql database

我有以下代码,

<?php
// sending query
$result = mysql_query("SELECT * FROM {$table} ORDER BY Price");
if (!$result) {
    die("Query to show fields from table failed");
}

$fields_num = mysql_num_fields($result);


echo "<table width='700px'><tr>";

// printing table headers
for($i=0; $i<$fields_num; $i++)
{
    $field = mysql_fetch_field($result);
    echo "<td><b>{$field->name}</b></td>";
}
echo "</tr>\n";
// printing table rows
while($row = mysql_fetch_row($result))
{
    echo "<tr>";

    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($row as $cell)
        echo "<td>$cell</td>";

    echo "</tr>\n";
}
mysql_free_result($result);


?>

有一个“价格”栏,我需要在每个价格显示前插入英镑符号。我有HTML代码&#163;&pound;,但是我不知道在那之前将其添加到只有来自Price列的记录的位置。

4 个答案:

答案 0 :(得分:1)

如果您改为使用mysql_fetch_assoc,则可以在foreach中使用:

foreach($row as $name => $value)
{
    if($name == 'price')
        echo ...;
    else
        echo ...;

}

答案 1 :(得分:1)

我建议您使用mysql_fetch_assoc()检索值。这样你就可以获得一个关联数组,你可以这样做:

foreach($row as $cell_name => $cell_value){
}

注意:只有在结果集中没有重复的名称时才会有效。

答案 2 :(得分:1)

我建议重写使用mysql_fetch_assoc而不是mysql_fetch_row - &gt;因此,您知道何时处理price(和其他列):

// printing table rows
while($row = mysql_fetch_assoc($result)) {
    echo "<tr>";
    // $row is associative array...
    echo "<td>$result['id']</td>";
    echo "<td>$result['name']</td>";
    ...
    echo "<td>&pound; $result['price']</td>";
    ...
echo "</tr>\n";

}

答案 3 :(得分:0)

您可以通过执行以下操作获取列的键:

foreach($row as $key => $cell){
    if($key == "Price"){
        echo "<td>&pound; $cell</td>"; //From price column
    }else{
        echo "<td>$cell</td>"; //From other columns
    }
}

编辑:如果您想检查它是否在右栏打印:

foreach($row as $key => $cell){
    if($key == "Price"){
        echo "<td>$key: &pound; $cell</td>"; //From price column
    }else{
        echo "<td>$key: $cell</td>"; //From other columns
    }
}

现在它将输出列的名称,以便您查看哪个列包含正确的信息。然后,当您找到正确的信息时,只需将if语句中的“Price”替换为右侧,然后从echo中删除$ key。