我有以下代码,
<?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代码£
和£
,但是我不知道在那之前将其添加到只有来自Price列的记录的位置。
答案 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>£ $result['price']</td>";
...
echo "</tr>\n";
}
答案 3 :(得分:0)
您可以通过执行以下操作获取列的键:
foreach($row as $key => $cell){
if($key == "Price"){
echo "<td>£ $cell</td>"; //From price column
}else{
echo "<td>$cell</td>"; //From other columns
}
}
编辑:如果您想检查它是否在右栏打印:
foreach($row as $key => $cell){
if($key == "Price"){
echo "<td>$key: £ $cell</td>"; //From price column
}else{
echo "<td>$key: $cell</td>"; //From other columns
}
}
现在它将输出列的名称,以便您查看哪个列包含正确的信息。然后,当您找到正确的信息时,只需将if语句中的“Price”替换为右侧,然后从echo中删除$ key。