在phpmyadmin中编辑的mysql数据库不会在php脚本中返回查询

时间:2013-07-18 19:22:05

标签: php mysql pdo phpmyadmin

这是一个奇怪的问题。我在名为Parents的数据库表中有一个名为status的字段。通过php脚本,我进入了一群状态为“活跃”的父母。后来,我使用phpmyadmin将其中两个更改为“休眠”状态。当我运行一个询问状态为active的行的查询时,phpmyadmin和我的php脚本都很好。当我运行查询请求状态为休眠的行时,phpmyadmin返回状态为休眠的两行,但我的php脚本不返回任何行。以下是代码的相关部分:

// get value of radio button for $active
$active = stripslashes(strip_tags($_POST['active']));
if (!$active) {
  $active = 'active';
}

// Similar process for value of $myOrderby, 
// which can have value of 'name' or 'email' and works fine

$query = "SELECT 
    Parents.parentID, 
    Parents.parentName, 
    Parents.parentEmail, 
    Students.nickName,
    Students.Lname
  FROM Parents, Students
  WHERE Parents.parentID=Students.parentID
    AND Parents.status=:active
  ORDER BY $myOrderby ASC" ;
$stmt = $db->prepare($query);
$stmt->bindValue(':active', $active, PDO::PARAM_STR);

try {
   $stmt->execute();
   $affected_rows = $stmt->rowCount();
   if ($affected_rows > 0) {
      // various actions...
   }
} catch (PDOException $ex) {
   $message = $ex->getMessage() ;
   $filename = 'admin-parents' ;
   notifyMe($message, $filename) ;
}

然而,奇怪的是,如果我再次使用phpmyadmin将状态为“休眠”的两行更改回“活动”状态(不使用输入框中的任何标点符号),则这两行不会显示在php结果为所有活跃的父母。这就是我在整个任务中遇到的问题。

澄清:myphpadmin查询总是为这两行返回正确的结果,当状态为“活动”且状态为“休眠”时。 (我通过myphpadmin更改它们。)然而,php脚本永远不会返回这两行,无论它们的状态如何。

2 个答案:

答案 0 :(得分:0)

您需要设置用户选择的按钮,在查询中使用result作为参数 假设单选按钮设置为

<Input type = 'radio' Name ='active' value= 'active'>Active
<Input type = 'radio' Name ='active' value= 'dormant'>Dormant


// get value of radio button for $active
$active = $_POST['active'];

}
ETC..............

分配参数

$stmt->bindValue(':active', $active, PDO::PARAM_STR);

答案 1 :(得分:0)

事实证明:父表中状态为“休眠”的两行在Student表中没有任何行。该查询仅返回Parent也具有Student的行。这不完全是我的意图。回到绘图板!但我很放心了解问题的根源!感谢大家! : - )