2014-04-16 5 views
-3

두 테이블의 데이터를 하나의 변수에 에코하려고합니다.

$sqlCommand = "SELECT * FROM News ORDER BY id DESC LIMIT 10"; 
$sqlCommand3 = "SELECT * FROM Users ORDER BY id"; 

$query = mysql_query($sqlCommand) or die(mysql_error()); 
$query3 = mysql_query($sqlCommand3) or die(mysql_error()); 

$count = mysql_num_rows($query); 
if($count > 1) { 
    $News .= ""; 

    // How do I add the query3 here?? along side the already existing one 
    while($row = mysql_fetch_array($query)) { 

     // some of the $row here are from query one and some are from query 3 
     $News .= "<a href=\"news?id=".$row['id']."\"><div class=\"news-post\"> <img src=\"".$row['author']."\"><p>".$row['author']."</p> <h2>".$row['title']."</h2></div></a>"; 
    } // close while 
+2

두 테이블이 관련되어 있습니까? 그렇다면 JOIN 쿼리를 사용 해본 적이 있습니까? –

답변

2

이 대신 그것에 대해 가서 SQL join를 사용하여 시도하는 올바른 방법이되지 않습니다 : 여기에 지금까지 가지고있는 코드입니다. 이 경우 고유 한 FULL OUTER JOIN을 원할 것입니다.

SELECT * FROM News 
FULL OUTER JOIN USERS 
ON News.id = Users.id 
WHERE News.id IS NULL 
OR Users.id IS NULL; 

두 테이블의 모든 열을 포함하는 모든 행을 제공해야합니다. 실제 관계에 따라 일부 다른 종류의 조인을 원할 수도 있습니다 (이전 링크 참조). 그러나이 예제는 사용자가 취하려고했던 것과 같습니다.

경고 :deprecated in PHP 5.5mysql_* 확장자를 사용하고 있습니다. mysqli_* 또는 PDO을 사용하십시오.

0

사용자 테이블은 oneToMany 연결에 의해 뉴스 테이블에 연결되어야합니다. 그래서 사용자가 뉴스를 쓰고 사용자가 새 것을 씁니다. 그리고 SQL 쿼리에 조인을 추가해야합니다.

$sql = 'SELECT u.username, n.* FROM News n JOIN User u ON n.user_id = u.id'; 

그런 다음 하나의 SQL 문을 실행하고 결과를 HTML로 표시하면됩니다.

이걸 보셨습니까 website.

+2

메모 만 [W3Schools보다 나은 리소스]를 찾는 것입니다 (http://www.w3fools.com/). 그들은 SEO와 잘 어울리 기 때문에 때때로 힘들 수 있습니다. – Sam

관련 문제