0

当我进行 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.";";
            }           

        }

    }

所以例如说我正在尝试获取一、二、三列当输出被回显时,它会回显

one, one, two,three;

我不确定这是否与此问题重复,因为我无法完全理解他的问题。在数组的每个位置获取数组函数加倍值?

4

1 回答 1

2

因为mysql_fetch_array返回数字索引值和字符串索引,并且由于类型转换规则的乐趣"one"equals 0。使用===而不是==防止这种情况发生,或者使用mysql_fetch_assoc放弃你不使用的数字索引。

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

echo $row['one'], ', ', $row['two'], ', ', $row['three'], ';';
于 2013-08-25T15:43:09.617 回答