0

我正在尝试编写一个脚本,该脚本根据我数据库中条目的 id 从 sql 服务器获取数据。当我尝试使用带有id条目的链接访问该页面时,它返回就好像它无法识别该 ID。下面是php代码:

<?php
    require('includes/config.inc.php');
    require_once(MYSQL);
    $aid = FALSE;
    if (isset($_GET['aid']) && filter_var($_GET['aid'], FILTER_VALIDATE_INT, array('min_range' => 1)) ) {
          $aid = $_GET['aid'];
          $q = "SELECT aircraft_id, aircraft_name AS name, aircraft_type AS type, tail_number AS tn FROM aircraft USING(aircraft_id) WHERE aircraft_id = $aid";
          $r = mysqli_query($dbc, $q);
          if (!(mysqli_num_rows($r) > 0)) {
            $aid = FALSE;
          }
    }// end isset tid

    if ($aid) {
        while ($acdata = mysqli_fetch_array($r, MYSQLI_ASSOC)){
            echo'<h2>'. $acdata['tail_number'] .'</h2>';
        }
    } else {
      echo '<p>This pages was accessed in error.</p>';
    }
?>

有什么提示吗?

4

3 回答 3

1

尝试var_dump($q);之前$r = mysqli_query($dbc, $q);检查您的查询,然后通过 phphmyadmin 或直接在 MySQL 服务器终端中执行它,看看它返回什么。

更新:

用于var_dump($q);die();在转储后停止执行脚本。

于 2012-09-03T09:16:26.637 回答
0

您在查询中使用了字段别名,因此您必须在 echo 中使用它来:

echo'<h2>'. $acdata['tn'] .'</h2>';
于 2012-09-03T09:18:12.400 回答
0

摆脱USING(aircraft_id),它会导致错误并且您的查询不会执行。

"SELECT aircraft_id, aircraft_name AS name, aircraft_type AS type, tail_number AS tn FROM aircraft WHERE aircraft_id = $aid"

我猜这是查询的先前版本的剩余部分?Using (id)是一个捷径

FROM
foo
INNER JOIN bar ON foo.id = bar.id

当要连接的表在具有相同名称的列上连接时,可以使用它。只是写的更短。

由于您没有加入,因此您必须将其删除。

于 2012-09-03T09:18:56.813 回答