2013-05-11 10 views
0

두 개의 데이터베이스가 있습니다. 데이터베이스 하나에는 제목, ID, 데이터베이스의 위치 (위치 별) 및 위치별로 저장된 업로드 된 문서 목록이 있습니다. 두 번째 데이터베이스는 책을 읽을 때마다 세부 정보를 저장합니다. 이것은 ID (첫 번째 데이터베이스에서 가져온 ID)와 로그인 된 사용자 이름을 저장합니다.배열의 각 결과에 대해 PHP 쿼리를 실행하십시오.

두 가지 쿼리가 있습니다. 첫 번째는 두 번째 데이터베이스를 검색하고 현재 사용자 번호가있는 모든 ID를 배열로 저장합니다. 에코는 테스트 용입니다. 두 번째 데이터베이스는 첫 번째 데이터베이스를보고 읽지 않은 모든 문서를 나열하지만 발견 된 세부 사항과 다른 항목을 찾습니다. 그러나 첫 번째 쿼리에서 찾은 각 ID를 통해 두 번째 쿼리 루프를 만드는 데 주력하므로 첫 번째 쿼리 만 검색합니다. 나는 확실히 내 현재의 지식을지나 가서 내가 for i=, for each id found 또는 while 필요가 있다고 생각하지만, 나는 그것이 작동하도록하는 방법을 잘 모르겠어요하고

<?php 
$connection = mysql_connect("host","database","password") or die("Couldn't make connection."); 
$db = mysql_select_db("database", $connection) or die("Couldn't select database."); 
$sql = "SELECT * FROM `READ` WHERE `name` = '$user'";      
$sql_result = mysql_query($sql,$connection) or die("Couldn't execute query 1."); 

while($row1 = mysql_fetch_array($sql_result))       
{ 
    echo "<br>".$row1['item']; 
    $ident = $row1["item"];            
} 

mysqli_close($connection);           
?> 

<?php 
$connection = mysql_connect("host","database","password") or die("Couldn't make connection."); 
    $db = mysql_select_db("database", $connection) or die("Couldn't select database."); 
$query ="SELECT * FROM UPLOAD WHERE id NOT LIKE '$ident' AND faoGrade LIKE '%$gr%'";  
    //$ident only searching the first number stored 
$query_result = mysql_query($query,$connection) or die("Couldn't execute query 2."); 
while($row2 = mysql_fetch_array($query_result))        
{ 
    echo "<br>".$row2["title"];  
} 

mysqli_close($connection);                  
?> 

:

이 내 코드입니다. $gr$user은 페이지 상단의 세션 변수입니다. 나는 mysqli를 업데이트했지만 아직 익숙하지 않다.

+3

mysqli_close는 mysql_close이어야하고 –

+1

이어야하며 완료되어야합니다. 내 실수 Yogesh – user1980618

+0

별도의 데이터베이스가 필요합니까? 그들은 대신 동일한 데이터베이스에서 별도의 테이블이 될 수 있습니까? – Patashu

답변

0

아래 코드를 시도하십시오.

<?php 
     $connection1 = mysql_connect("host","username","password") or die("Couldn't make connection."); 
     $db = mysql_select_db("database", $connection1) or die("Couldn't select database."); 

     $connection2 = mysql_connect("host","username","password") or die("Couldn't make connection."); 
     $db = mysql_select_db("database", $connection2) or die("Couldn't select database."); 

     $sql = "SELECT * FROM `READ` WHERE `name` = '$user'";      
     $sql_result = mysql_query($sql,$connection1) or die("Couldn't execute query 1."); 

     while($row1 = mysql_fetch_array($sql_result))       
     { 
      echo "<br>".$row1['item']; 
      $ident = $row1["item"]; 

      //$gr is not assigned any value..plz check it 
      $query ="SELECT * FROM UPLOAD WHERE id NOT LIKE '$ident' AND faoGrade LIKE '%$gr%'";  
      //$ident only searching the first number stored 
      $query_result = mysql_query($query,$connection2) or die("Couldn't execute query 2."); 
      while($row2 = mysql_fetch_array($query_result))        
      { 
       echo "<br>".$row2["title"];  
      } 
     } 

     mysql_close($connection1); 
     mysql_close($connection2); 
?> 

여러 개의 데이터베이스 연결을 관리하는 데 도움이되기를 바랍니다.

참고 : mysql_* 확장 프로그램은 더 이상 사용되지 않습니다. mysqli_* 또는 PDO 개의 확장자를 사용하십시오.

+0

은 매력처럼 일했습니다. 감사합니다. – user1980618

관련 문제