如何检查列名是否为“名称”?

时间:2014-12-05 14:35:30

标签: php mysql database

我有一张桌子: -

|----------|-----------------------------------------|------------------|
|    id    |        name                             |    desc          |
|----------------------------------------- ----------|------------------|
|    123   |   Empire : Kill (Kill everybody now)    |    desc 1        |
|----------------------------------------------------|------------------|
|    243   |   Witch : Show (Bloodthirst part 2)     |    desc 2        |
|----------------------------------------------------|------------------|

我正在编写以下代码以从表中提取数据: -

$columns_total  = mysql_num_fields($result); 

while ($row = mysql_fetch_array($result)) //retrieving each row 
    {
        for ($i = 0; $i < $columns_total; $i++) 
        {
            /*appending each column data into the row of the data 
                encapsulated within double quotes and separated by a comma */
            $output .='"'.$row["$i"].'",';
        }
    }

我必须检查$row[$i]是否为name列或desc列的值?

如果是name列,则括号内的文字将被删除,否则不会

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

我建议使用associative数组..也是foreach循环,如下所示:

while ($row = mysql_fetch_assoc($result)) //retrieving each row's ASSOCIATIVE ARRAY 
    {
        foreach ($row as $key => $value)  // $key will hold the name of the field
        {
            // now you can go like this:
            if($key != 'name')
                $output .= '"'.$value.'",';
            else
                // whatever you want 

        }
    }

正如旁注,mysql_函数已被弃用。您应该使用mysqli_PDO代替。

答案 1 :(得分:0)

使用mysql_fetch_array($ result,MYSQL_ASSOC))。这样,您的结果就会回来:

array (
    'id'=>123,
    'name'=>"Whatever the name is",
    'desc'=>"desc 1"
);
foreach ($row as $name=>$value)
   ...

答案 2 :(得分:0)

尝试使用foreach

foreach($row as $key => $value)
{
     if($key == 'name')
     {
         ...
     }
}

$key将是数组的索引键,$value是其值

'key' => 'value'