2014-03-13 38 views
0

我對PHP和MYSQL很新,但可以在某種程度上使用訪問權限。 我有兩個表,一個是字段Price,另一個是字段Exchange。 我想要做的就是將結果顯示爲Price x Exchange的HTML表格中的數組。 在Access的表達式如下:在PHP中的表達式查詢

`SELECT tbmetal.[Price GBP], tbexchange.Rate, [Price GBP]*[Rate]/100 AS Ex 
FROM tbexchange, tbmetal; 

這是我多麼可憐我就PHP而言:

$con= mysql_connect($dbhost,$dbuser,$dbpass); 
@mysql_select_db($dbname) or die("Unable to select database"); 

//retrieve data 
$result = mysql_query("SELECT * FROM tbmetal,tbexchange"); 




//Simple GBP to USD Conversion Calculator 
//define constants: 
define("GBP_TO_USD", 0.6); 
//enter GBP 
$GBP = 12; 
//convert to USD, multiply by constant 
$UDS = $GBP * GBP_TO_USD; 


echo 
"<table border='1'> 
<tr> 
<th width='200px'>Metal</th> 
<th width= '100px'>Price Per Gram GBP</th> 
<th width= '100px'>Price Per Gram USD</th> 
<th width= '100px'>Price Per Gram EUR</th> 
</tr>"; 

while ($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['Metal'] . "</td>"; 
    echo "<td>" . $row['Price'] . "</td>"; 
    echo "<td>" . $UDS . "</td>" 
    echo "</tr>"; 
    } 
    echo "</table>"; 

?> 
+0

請張貼這兩個表的表/列結構。由於您的查詢沒有條件加入它們,因此MySQL將從第二個(笛卡爾積) –

回答

0

基本上安全,你可以做的是拉取數據如您在訪問中所做的那樣,只有您需要一種將兩個表關聯在一起的方式。在下面的例子中,我將兩個表都放在兩個表中的Metal字段上。現在,我不知道你是否在這兩個表中都有Metal字段,因爲你沒有提供這些信息,但是如果沒有,找到將這兩個表連接在一起並使用它的東西。

這裏是一個例子。

<?php 

// CONNECT TO THE DATABASE 
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); 


// SET THE DEFAULT EXCHANGE RATES 
define("GBP_TO_USD", 0.6); 
define("GBP_TO_EURO", 1.2); 


// BUILD THE QUERY 
$sql = "SELECT tbmetal.Price, tbexchange.Rate FROM tbexchange, tbmetal WHERE tbmetal.Metal = tbexchange.Metal"; 
$result = mysqli_query($con, $sql) or die("Cannot get metal prices"); 


// START PRINTING OUT THE TABLE  
echo " 
     <table border='1'> 
     <tr> 
      <th width='200px'>Metal</th> 
      <th width= '100px'>Price Per Gram GBP</th> 
      <th width= '100px'>Price Per Gram USD</th> 
      <th width= '100px'>Price Per Gram EUR</th> 
     </tr>"; 

// LOOP THROUGH THE RESULTS FROM THE QUERY, DO THE CONVERSION AND OUTPUT THE TABLE ROW 
while ($row = mysqli_fetch_array($result)) { 

    $GBP = $row['Price']; //enter GBP 

    $UDS = $GBP * GBP_TO_USD; //convert to USD, multiply by constant 
    $EUROS = $GBP * GBP_TO_EURO; //convert to EURO, multiply by constant 


    // PRINT OUT THE TABLE ROW 
    echo " 
     <tr> 
      <td>".$row['Metal']."</td> 
      <td>".$GBP."</td> 
      <td>".$UDS."</td> 
      <td>".$EUROS."</td> 
     </tr>"; 

} 

// CLOSE THE TABLE 
echo " 
     </table>"; 
+0

的所有行中返回第一個重複的所有行。非常感謝。我用金屬,它工作正常。我最終會得到這個:) – user3416250

+0

你非常歡迎。很高興我能幫上忙。 – Quixrick