访问变量内的项目

时间:2013-06-20 15:22:25

标签: php

我有以下数据库模式,

CREATE TABLE `tz_todo` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `position` int(8) unsigned NOT NULL default '0',
  `text` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `dt_added` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `position` (`position`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

如果我正在编写以下PHP语句,

$query = mysql_query("SELECT * FROM `tz_todo` ORDER BY `position` ASC");

我如何访问$ query中的文本项?

请指导。感谢

更新: 我试过这个,

echo $query['id'];
echo $query['position'];
echo $query['text'];

2 个答案:

答案 0 :(得分:3)

尝试打印$ query将不允许访问该信息。必须使用其中一个mysql结果函数:mysql_fetch_assoc(),mysql_result(),mysql_fetch_array(),mysql_fetch_row()等。

这是一个使用mysql_fetch_assoc()访问结果的示例:

 while ($row = mysql_fetch_assoc($result)) {
        echo $row['id'];
        echo $row['position'];
        echo $row['text'];
        echo $row['dt_added'];
    }

最好首先检查是否有任何结果返回,下面是如何做到这一点的示例:

if (!$query) {
   //do stuff when there is no data returned
}

注意:从PHP 5.5.0开始,不推荐使用mysql_query,将来会删除它。相反,应使用MySQLiPDO_MySQL

答案 1 :(得分:1)

documentation以简单明了的方式涵盖了这一点。 (请注意,建议您远离mysql_query命令族。)

基本方法是以下列方式迭代结果。

$query = mysql_query( ...
while ($row = mysql_fetch_assoc($query))
{
  do something
}