0

我刚刚开始 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>";
4

1 回答 1

4

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

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

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

于 2013-08-08T19:56:32.373 回答