1

可能重复:
mysql_fetch_array() 期望参数 1 是资源,选择中给出的布尔值

好的,所以我有我的页面“列出客户”,然后链接到“列出工作”添加?custID=到 URL 中,然后在我使用的列出工作上,$_GET["custID"]所以我的查询使用custID来自 URL 的。效果很好,使用他们的 ID 列出了我为所述客户的工作。

我的问题现在出现了,我需要这个页面上的链接来给我的第三页techID。但是techIDin jobDetails,所以我的查询不能给他们,techID因为它正在查询我的job部分。

这是我的“ListJobs.php”页面,在它之前的页面中选择客户时,会使用 url 加载此页面ListJobs.php?custID=001(001 是一个示例,它会根据您选择的客户给出数字)。

<?php 
// Get data from the database depending on the value of the id in the URL
mysql_select_db($database_con_sim5, $con_sim5);
$query_Recordset1 = "SELECT * FROM job WHERE custID=" . $_GET["custID"] ;
$Rs1 = mysql_query($query_Recordset1);
// Loop the recordset $rs
while($row = mysql_fetch_array($Rs1)) {
  $strName1 = $row['jobID'] . " " . $row['jobDesc'] . " " . $row['computerName'];
  $strLink = "<a href = 'jobDetails.php?jobID=".$row['jobID']."'>".$strName1."</a>";
  // Write the data of the person
  echo "<li>" . $strLink . " </li>";
}
// Close the database connection
mysql_close();
?>

然后按其中一个链接,链接到jobDetails.php?jobID=作业编号。我可以在 Job Detail 中显示所有详细信息,但我也需要我Tech Name的出现,Tech Name不在Job Details,而是Tech ID在。这是我的工作详细信息页面编码:

<?php 
// Get data from the database depending on the value of the id in the URL
mysql_select_db($database_con_sim5, $con_sim5);
$query_Recordset1 = "SELECT * FROM jobDetail WHERE jobID=" . $_GET["jobID"] ;
$query_Recordset2 = "SELECT technician.techName FROM technician 
  WHERE techID=" . $query_Recordset1["techID"] ;
$Rs1 = mysql_query($query_Recordset1);
$Rs2 = mysql_query($query_Recordset2);
while($row1 = mysql_fetch_array($Rs1)) {
  while($row2 = mysql_fetch_array($Rs2)) {
    echo "<dt><strong>Job Note ID:</strong></dt><dd>".$row1["jobNoteID"]."</dd>";
    echo "<dt><strong>Job Notes:</strong></dt><dd>".$row1["jobNotes"]."</dd>";
    echo "<dt><strong>Date Completed:</strong></dt><dd>".$row1["dateCompleted"]."</dd>";
    echo "<dt><strong>Time Spent:</strong></dt><dd>".$row1["timeSpent"]."</dd>";
    echo "<dt><strong>Job ID:</strong></dt><dd>".$row1["jobID"]."</dd>";
    echo "<dt><strong>Technician ID:</strong></dt><dd>".$row1["techID"]."</dd>";
    echo "<dt><strong>Technician Name:</strong></dt><dd>".$row2["techName"]."</dd>";
  }
}
// Close the database connection
mysql_close();
?>

我得到的错误是:

警告:mysql_fetch_array() 期望参数 1 是资源,布尔值在 D:\xampp\htdocs\Sim5Server\Pages\jobDetails.php 第 129 行给出

那条线是:

while($row2 = mysql_fetch_array($Rs2)) { 

我希望我有任何意义。

总而言之,我需要我的最后一页使用主/索引键 techID 显示来自 mysql 技术人员的数据。将 techID 添加到 listJobs 的作业详细信息链接或作业详细信息的第二个 Recordset 中的某种方式。

编辑:我可能应该说这永远不会在网上使用,我只需要它来完成任务。将来,多亏了评论,我将不再使用 mysql_* 我只是在使用它们,因为我的整个工作簿都告诉我们使用它。

4

1 回答 1

0

jobDetails.php尝试在您的页面中进行此更改

$query_Recordset1 = "SELECT * FROM jobDetail WHERE jobID=". (int) $_GET["jobID"];
$Rs1 = mysql_query($query_Recordset1) or die(mysql_error());
while($row1 = mysql_fetch_array($Rs1)) {
  $query_Recordset2 = "SELECT technician.techName FROM technician 
  WHERE techID=" . $row1["techID"] ;
  $Rs2 = mysql_query($query_Recordset2) or die(mysql_error());
  while($row2 = mysql_fetch_array($Rs2)) {

对于第二个查询,您正在使用执行第一个查询的结果资源作为techID. 此外,您必须techNamewhile循环内部查询以获取作业详细信息,因为只有这样您才能拥有techID.

于 2012-11-04T07:52:52.503 回答