2012-09-05 18 views
-3

我有兩個沒有公共鍵(屬性和需求)的表。我想編寫一個php腳本,首先從屬性和foreach行中選擇所有行,從屬性中選擇行,從需求中比較屬性和需求的特定字段值。 例如 表屬性有: 面積,價格 表的需求 AreaFrom,包含pricefromPHP腳本從基於另一個表沒有通用鍵的表中選擇

從物業的行會 面積= 50,價格爲100 和該行我想與所有匹配它DemandFrom = 50,PriceFrom = 100。

+0

然後,而不是比較鍵,只是比較這兩列。 – hjpotter92

+0

是的,但我如何比較從屬性與需求中的所有行到PHP腳本的所有行? – user1649426

+2

[你有什麼嘗試?](http://www.whathaveyoutried.com) – Kermit

回答

1

這是你想要的腳本。我用PDO api編寫了它,因爲首先mysql正常api已經被棄用,不再被支持,第二個PDO提供了更多的安全性..

還有一件事..總是用全部小寫字母命名你的表和數據庫。因爲大寫字母在查詢中導致問題..所以我使用areafrom而不是Areafrom。

<?php 
try { 
    $conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $qry = $conn->prepare('SELECT * FROM property'); 
    $qry2 = $conn->prepare('SELECT * FROM demand WHERE areafrom = :areafrom AND pricefrom = :pricefrom'); 
    $qry->execute(); 
    while($row = $qry->fetch(PDO::FETCH_OBJ)) { 
     $qry2->execute(array(':areafrom' => $row->area, ':pricefrom' => $row->price)); 
     $row2 = $qry2->fetch(PDO::FETCH_OBJ); 
     //Do all you want with the $row2. If u want to echo the areafrom, do echo $row2->areafrom 
    } 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 
?> 
+0

通過正常的mysql API你指的是mysql而不是mysqli? – Mario

+0

是的mysql api。 'mysql_connect()'和那些東西。它尚未正式廢棄,但很快就會出現。它有這麼多的缺點,所以我不會推薦使用它.. –

+0

+1,PDO是要走的路。一旦你習慣了它,安全和一個變得非常有效的API。 – Mario

相關問題