我使用查询创建了一个表:
CREATE TABLE IF NOT EXISTS `bus` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`hindi` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
并将值转储为:
INSERT INTO `bus` (`id`, `name`, `hindi`) VALUES
(1, '1', '1'),
(2, '1A', '1ए'),
(3, 'AC1', 'एसी 1');
当我尝试从此表中获取结果时,如下所示:
while ($row3 = mysql_fetch_array($startb))
{
$bus3 = $row3['busid'];
$startb2 = mysql_query("select `name` from `bus` where `id`='$bus3'");
$startb3 = mysql_fetch_array($startb2);
print_r($startb3);
$startbu = $startb3['name'];
}
当我尝试打印$startb3
的值时,它会给出如下值:
Array ( [0] => AC1 [name] => AC1 )
不会打印字段id
和hindi
的值。请告诉我们,我在查询中缺少什么?
答案 0 :(得分:2)
因为您没有在查询中选择id和hindi feilds。试试这样:
while ($row3 = mysql_fetch_array($startb))
{
$bus3 = $row3['busid'];
$startb2 = mysql_query("select `name`, `id`, `hindi` from `bus` where `id`='$bus3'");
$startb3 = mysql_fetch_array($startb2);
print_r($startb3);
$startbu = $startb3['name'];
}
希望这能解决您的问题。
答案 1 :(得分:2)
您的SQL语句是:
$startb2 = mysql_query("select `name` from `bus` where `id`='$bus3'")
如果你想要其他值,那就是:
$startb2 = mysql_query("select `name`, `id`, `hindi` from `bus` where `id`='$bus3'")
或
$startb2 = mysql_query("select * from `bus` where `id`='$bus3'")
同样如前一条评论中所述,msql_
已弃用,请使用带有变量绑定的msqli_
或将来使用PDO。