1

我正在创建一个简单的问题数据库,这里有一些细节可以开始:

首先,我没有使用 PDO - 它是一个旧的 web 应用程序,这个问题与升级到 PDO 无关。

数据库

CREATE TABLE IF NOT EXISTS `questions` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `question` varchar(255) NOT NULL,
  `userID` int(11) unsigned NOT NULL,
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

已经在数据库中:

INSERT INTO `apl_questions` (`id`, `question`, `userID`, `active`) VALUES
(1, 'Do you have a dog?', 1, 1),
(2, 'Have you ever been arrested?', 1, 1),
(3, 'Pick yes or no...', 1, 1);

PHP的

$questionsResult = mysql_query("select * from questions where userID = 1 AND active = 1"); // Get all activated questions
    if(mysql_num_rows($questionsResult) > 0){
        $questions = mysql_fetch_assoc($questionsResult);
        var_dump($questions);
    }

结果(PHP的)

array(4) { ["id"]=> string(1) "1" ["question"]=> string(18) "Do you have a dog?" ["userID"]=> string(1) "1" ["active"]=> string(1) "1" } 

正如你所看到的,这只是抓取第一行 - 当它应该抓取所有行时,因为所有 3 行的用户 ID 和“活动”列都是 1。有人在这里看到任何可能导致这个问题的东西吗?如果我将查询放入 PHP MyAdmin,则查询可以正常工作 - 所以我必须在这一点上假设它是 PHP ......这让我大吃一惊!

谢谢。

4

2 回答 2

2

似乎 mysql_fetch_assoc 是获取,与批量获取相反,这意味着它将在给定数组中每行获取行。

您必须循环,例如在 php 页面中:

while ($row = mysql_fetch_assoc($result)) {
   echo $row["userid"];
   echo $row["fullname"];
   echo $row["userstatus"];
}

rgds。

于 2012-06-24T15:47:56.550 回答
0

尝试:

$questionsResult = mysql_query("select * from questions where userID = 1 AND active = 1"); // //Get all activated questions
if(mysql_num_rows($questionsResult) > 0){
    while($questions = mysql_fetch_assoc($questionsResult)){
      var_dump($questions);
    }
 }
于 2012-06-24T15:47:43.947 回答