php查询出错

Jes*_*m93 -3 php sql

我试图访问数据库中的两个表,一个代理和其他属性.当我点击上一页上的链接时,它会带我到地址栏中的ID.我无法理解为什么我不断收到此错误消息:警告:mysql_numrows()期望参数1是资源,布尔值在第16行的C:\ wamp\www\practice\details.php中给出

    $id = $_GET['id'];

    $agent ="SELECT agentId FROM properties WHERE id='$id'";
    $agentQuery ="SELECT * FROM agents WHERE agentId='$agent'";
    $agentResult=mysql_query($agentQuery);
    $agentNum=mysql_numrows($agentResult);
Run Code Online (Sandbox Code Playgroud)

我已经有这个代码工作:

$query ="SELECT * FROM properties WHERE id = '$id'";
$result=mysql_query($query);
$num=mysql_numrows($result);
Run Code Online (Sandbox Code Playgroud)

Sam*_*tch 8

让我们将您的查询代码压缩为单个语句:

$agentResult=mysql_query(
  "SELECT * FROM agents WHERE agentId='SELECT agentId FROM properties WHERE id='$id''"
);
Run Code Online (Sandbox Code Playgroud)

这不是一个有效的查询.

将此添加到您实际上没有检查返回值mysql_query()以查看它是否成功的事实,并且您已经提供了错误.

Yadda yadda SQL注入yadda yadda mysql_*函数已弃用yadda yadda学习使用PDO或mySQLi.

忽略我刚才所说的所有事情,你的代码应该更像:

$id = $_GET['id'];

$agent_q = "SELECT agentId FROM properties WHERE id='$id' LIMIT 1";
if( ! $rs = mysql_query($agent_q) ) {
  die(mysql_error());
} else if( mysql_numrows($rs) == 0 ) {
  echo('no agent by that ID');
} else {
  $row = mysql_fetch_assoc($rs);
  $agent = $row['agentId'];
  $agentQuery ="SELECT * FROM agents WHERE agentId='$agent'";
  if( ! $agentResult = mysql_query($agentQuery) ) {
    die(mysql_error());
  }
  $agentNum = mysql_numrows($agentResult);
}
Run Code Online (Sandbox Code Playgroud)

或使用以下内容简化查询:

SELECT a.*
FROM agents a INNER JOIN properties p
  ON a.agentID = p.agentId
WHERE p.id = $id
Run Code Online (Sandbox Code Playgroud)