对表的回显查询 - 两次打印每个列值

时间:2013-08-08 19:46:19

标签: php mysql

我刚开始PHP开发。我正在尝试在我们的网络服务器上打印每日电话报告。连接成功建立,查询运行,并打印表,但由于某些原因我似乎无法获得,它连续两次打印每列的值。因此,电话代理John Smith打印为

约翰约翰史密斯史密斯

表已格式化。它打印时不会出现错误 - 但是表格的宽度应该是它应该的两倍,因为每张都打印了两次。

另外,我知道mysqli和PDO比我在这里使用的命令更受欢迎。这是我的教科书提供示例的方式 - 当我对Web开发更加满意时,我会切换。现在,即使是简单的事情也会让我失望。

如果有人能够发现问题,我将不胜感激。

if (!($connection = mysql_connect($server,$userName,$password))) die("Could not connect");
mysql_select_db($databaseName, $connection);
$myQuery = "Select (a few fields here) 
From 
callreport inner join employees on callreport .`phonenum` = employees.extension
where 
date= 20130807";
if(!($result = mysql_query($myQuery,$connection))) showerror();

while ($row = mysql_fetch_array($result)){
    echo "<tr>";
    foreach ($row as $attribute){
        echo "<td>{$attribute}</td>";
    }
    echo "</tr>";
}

echo "
        </table>
    </body>
</html>";

1 个答案:

答案 0 :(得分:4)

mysql_fetch_array()以两种方式从表中返回一行 - 作为数字和关联索引数组:

$row['name']='John';
$row[0]='John';
$row['surname']='Smith';
$row[1]='Smith';

将此函数替换为mysql_fetch_assoc()(仅返回带关联键的数组)或mysql_fetch_row()(仅返回带数字键的数组)。在这两种情况下,您的脚本都会按预期工作。