MySQL行输出两次

时间:2015-06-12 09:41:34

标签: php mysql

我需要从我表格的最后一行添加一个名字,它有点工作,它会输出两次正确的数据。因此,而不是name1,它给了我name1name1。我仍然是PHP的新手,但我认为在这段代码中有一个双循环让我很难过,但我仍然无法找到它的位置..

如果有人能给我一个非常感激的指针。

CREATE TABLE `virtual_domains` (
    `id` int(11) NOT NULL auto_increment,
    `name` varchar(50) NOT NULL,
     PRIMARY KEY (`id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;  

3 个答案:

答案 0 :(得分:3)

默认情况下,mysql_fetch_array()返回值为关联值和枚举值(MYSQL_BOTH);指定一个或另一个

while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {

修改

但是mysql扩展名是已弃用,你真的应该用准备好的语句和绑定变量切换到mysqli或pdo。如果您只是在学习,那么最好从一开始就使用正确的扩展来学习正确的方法

答案 1 :(得分:2)

不需要while。您正在获取single行。并使用mysql_fetch_assoc进行关联array

$row = mysql_fetch_assoc($results);

echo '<tr>';
foreach($row as $field) {
   echo '<td>' . htmlspecialchars($field) . '</td>';
}
echo '</tr>';

答案 2 :(得分:1)

我会使用mysql_fetch_assoc。因为这只会将结果作为关联数组获取。

$query="SELECT question FROM poll ORDER BY id DESC LIMIT 1";
$results = mysql_query($query);

while ($row = mysql_fetch_assoc($results)) {
   echo '<tr>';
   foreach($row as $field) {
       echo '<td>' . htmlspecialchars($field) . '</td>';
   }
   echo '</tr>';
}