2012-09-05 2 views
-3

공통 키 (속성 및 수요)가없는 두 개의 테이블이 있습니다. 먼저 속성에서 모든 라인을 선택하는 PHP 스크립트를 작성하고 속성에서 foreach 라인은 속성에서 요구되는 특정 필드 값을 비교하는 요구에서 라인을 선택합니다. 예를 들어 테이블 속성이 있습니다 지역, 가격 테이블 수요가 AreaFrom,에서 pricefrom공통 키없이 다른 테이블을 기반으로 테이블에서 선택하는 PHP 스크립트

호텔에서 선이 될 것입니다 지역 = 50 = 100 그 줄을 내가 모두와 일치 할 가격 AreaFrom = 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를 사용하면 mysqli가 아니라 mysql을 참조 할 수 있습니까? – Mario

+0

예 mysql api. mysql_connect()와 그 것들. 아직 공식적으로 사용 중지 된 것은 아니지만 곧 제공 될 예정입니다. 그것은 너무 많은 단점을 가지고 있으므로 사용하지 않는 것이 좋습니다 .. –

+0

+1, PDO가 갈 길입니다. 일단 익숙해지면 사용하기에 매우 효율적이되는 보안 및 API – Mario

관련 문제