1

重複の可能性:
mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、select でブール値が指定されています

さて、私は自分のページ "List Customers" を作成し、次に "List Jobs" にリンクし?custID=て URL に追加します。次に、List jobs で使用$_GET["custID"]したので、クエリはcustIDURL から を使用します。それは正常に機能し、IDを使用してその顧客の私の仕事をリストします。

私の問題が発生しました.3番目のページにもこのページのリンクが必要techIDです. しかし、techIDは にあるので、私のセクションを照会しているjobDetailsため、私のクエリはそれらに を与えることができません。techIDjob

これは私の「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();
?>

次に、リンクの 1 つを押すjobDetails.php?jobID=と、ジョブ番号にリンクします。これで Job Detail にすべての詳細を表示できますが、私もTech Name表示する必要があります。これが私の仕事の詳細ページのコーディングです:Tech NameJob DetailsTech 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 がリソースであると想定します。129 行目の D:\xampp\htdocs\Sim5Server\Pages\jobDetails.php で指定されたブール値です。

その行は次のとおりです。

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

私がまったく意味を成していることを願っています。

要約すると、プライマリ/インデックス キーの techID を使用して、mysql 技術者からのデータを表示する最終ページが必要です。ジョブの詳細への listJobs のリンク、またはジョブの詳細の 2 番目の Recordset に techID を追加する方法。

編集:おそらく、これはネット上で使用されることは決してないだろうと述べておく必要があります。割り当てのためにのみ必要です。将来、コメントのおかげで、私は 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)) {

2 番目のクエリでは、最初のクエリを として実行した結果のリソースを使用していましたtechIDtechNameまた、ループ内でwhileジョブの詳細を取得するためにクエリを実行する必要がありtechIDます。

于 2012-11-04T07:52:52.503 に答える