php MySQL获取打印双倍?

时间:2013-08-25 15:39:21

标签: php

当我进行sql查询并将其回显时,它会重复第一行两次

$sql = 'SELECT one,two,three FROM justAnExampleForSO where one = one';
$info = mysql_query(sql);

if(mysql_num_rows($info )>0){


    while ($row = mysql_fetch_array($info )) {

            foreach($row as $key => $var)
            {
                if($key == 'one')
                    echo $var.",";                    
                else if($key == 'two')
                    echo $var.",";
                else if($key == 'three')
                    echo $var.";";
            }           

        }

    }

所以例如说我试图获得一,二,三的cols 当输出被回显时,它将回显

one, one, two,three;

我不确定这是否与此问题重复,因为我无法完全理解他的问题。 Fetch array function doubling values in each position of array?

1 个答案:

答案 0 :(得分:2)

因为mysql_fetch_array返回数字索引值和字符串索引,并且由于类型转换规则的有趣性"one"等于0。使用===代替==来阻止这种情况,或使用mysql_fetch_assoc放弃您未使用的数字索引。

您应该比foreach..if..else更简单地执行此操作:

echo $row['one'], ', ', $row['two'], ', ', $row['three'], ';';