0

ですから、INNER JOIN ステートメントに適切にアプローチするのはこれが初めてであり、言うまでもなくうまくいっていません。以下は私のページコードです:

<?php require_once('Connections/reps.php'); ?>
<?php

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_reps, $reps);
$query_orders = "SELECT * FROM orders";
$orders = mysql_query($query_orders, $reps) or die(mysql_error());
$row_orders = mysql_fetch_assoc($orders);
$totalRows_orders = mysql_num_rows($orders);

mysql_select_db($database_reps, $reps);
$query_staff = "SELECT * FROM staff";
$staff = mysql_query($query_staff, $reps) or die(mysql_error());
$row_staff = mysql_fetch_assoc($staff);
$totalRows_staff = mysql_num_rows($staff);

mysql_select_db($database_reps, $reps);
$query_products = "SELECT * FROM products";
$products = mysql_query($query_products, $reps) or die(mysql_error());
$row_products = mysql_fetch_assoc($products);
$totalRows_products = mysql_num_rows($products);

mysql_select_db($database_reps, $reps);
$join = "SELECT
orders.ID AS id,
orders.CustomerName AS customerName,
orders.StaffMember AS staffMember,
orders.SalesPrice AS salesPrice,
orders.ListPrice AS listPrice,
orders.AgeOfPayment AS productAge,
orders.Product AS productName,
orders.Quantity AS orderQuantity,
orders.DateOfOrder AS orderDate,
staff.Bonus AS staffBonus,
products.Price AS productPrice
FROM
orders AS orders
INNER JOIN staff AS staff ON orders.StaffMember = staff.StaffName
INNER JOIN products AS products ON orders.Product = products.ProductName
ORDER BY
orderDate ASC";

$joinresult = mysql_query($join);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<?php


require_once("models/config.php");
if (!securePage($_SERVER['PHP_SELF'])){die();}
require_once("models/header.php");

?>
</head>

<body>
<div id='wrapper'>
<div id='top'>
  <div id='logo'></div>
</div>
<div id='content'>
  <h1></h1>
  <h2>Change This</h2>
  <div id='left-nav'>
    <?php include("left-nav.php"); ?>
  </div>
  <div id='main'>
    <div id ="orderstable">
      <table border="1" cellpadding="1" cellspacing="3">
        <tr>
          <th>Order ID</th>
          <th>Customer Name</th>
          <th>Product</th>
          <th>Quantity</th>
          <th>Sales Price (€)</th>
          <th>Total Sale (€)</th>
          <th>List Price (€)</th>
          <th>Price Difference (€)</th>
          <th>% Difference</th>
          <th>Sold By</th>
          <th>Order Date</th>
          <th>Age of Payment</th>
          <th>Bonus %</th>
          <th>Bonus Amount</th>
        </tr>
        <?php do { ?>
        <?php do { ?>
          <tr>
            <td align="center" valign="middle"><?php echo $row_orders['ID']; ?></td>
            <td align="center" valign="middle"><?php echo $row_join['customerName']; ?></td>
            <td align="center" valign="middle"><?php echo $row_join['product']; ?></td>
            <td align="center" valign="middle"><?php echo $row_orders['Quantity']; ?></td>
            <td align="center" valign="middle"><?php echo $row_orders['SalesPrice']; ?></td>
            <td align="center" valign="middle"><?php $first_multiply = $row_orders['Quantity'];
                                               $second_multiply = $row_orders['SalesPrice'];
                                               $multiply_total = $first_multiply *  $second_multiply;
                                               echo ($multiply_total); ?></td>
            <td align="center" valign="middle"><?php echo $row_orders['Price']; ?></td>
            <td align="center" valign="middle"><?php $first_number = $row_orders['Price']; 
                                                $second_number = $row_orders['SalesPrice'];
                                                $sum_total = $first_number - $second_number;
                                                echo ($sum_total); ?></td>
            <td align="center" valign="middle">as</td>
            <td align="center" valign="middle"><?php echo $row_join['staffMember']; ?></td>
            <td align="center" valign="middle"><?php echo date('d/m/Y', $row_orders['orderDate']); ?></td>
            <td align="center" valign="middle"></td>
            <td align="center" valign="middle"><?php echo $row_orders['bonus']; ?>%</td>
            <td align="center" valign="middle">&nbsp;</td>
          </tr>
          <?php } while ($row_orders = mysql_fetch_assoc($orders));?>
          <?php } while ($row_join = mysql_fetch_array($join));?>
      </table>
    </div>
  </div>
  <div id='bottom'></div>
</div>
</body>
</html><?php
mysql_free_result($orders);

mysql_free_result($staff);

mysql_free_result($products);
?>

私が基本的にやろうとしていることは、次のとおりです。

  • この前のページから注文します。データはデータベースのテーブルに格納され、エコーアウトされます。
  • 問題の 3 つのテーブルは、staff、orders、および products テーブルです。
  • 値ではなく ID に基づいてフォームを保存しました。私はググってINNER JOINを調べましたが、うまくいかなかった以下を試しました。

私が間違っていることについて正しい方向に私を向けることができる人はいますか?

4

3 に答える 3