2014-04-26 1 views
1

임 테이블이와 뉴스 :두 개의 테이블 나의 선택이 제대로 작동하지

-id_news-기본 키

-제목

-내용

- 날짜

- 종류 - 다음 외래 키

그리고있는 카테고리 테이블 : - id_category-기본 키

-

설명

과 내 카테고리 설명을 테이블에 표시하려고하는데 작동하지 않지만 다른 데이터가 작동 중입니다.

임과 같은 시도 :

$readNews = $pdo->prepare("SELECT * FROM news ORDER BY date DESC"); 
$readNews ->execute(); 
$resultReadNews = $readNews ->rowCount(); 

if(!$resultReadNews >= 1) 
{ 
echo 'There are now news yet'; 
} 

else 
{ 
    echo '<table>'; 
    echo ' <tr>'; 
    echo ' <td>Title:</td>'; 
    echo ' <td>Content:</td>'; 
    echo ' </tr>'; 

    while ($resultReadNews = $readNews ->fetch(PDO::FETCH_ASSOC)) 
    { 
     $readCat= $pdo->prepare("SELECT * FROM categories, newsWHERE id_category = ?"); 
     $readCat->bindValue(1,$resultReadNews ['category']); 
     $readCat->execute(); 
     $resultReadCat = $readCat->fetch(PDO::FETCH_ASSOC); 
     $rowsCat = $readCat->rowCount(); 

     echo '<tr>'; 
     echo '<td>'.$resultReadNews ['title'].'</td>'; 
     echo '<td>'.$resultReadNews ['content'].'</td>'; 
     echo '<td>'.$resultReadCat ['description'].'</td>'; 
} 

문제가 어디에 있는지 볼 수 있습니까?

+0

당신이'선택 description'하지만 다른 컬럼을 읽고 있다는이 될 수 있을까? –

+0

고마워,하지만 여기에 코드를 전달하고 그 잘못했다,하지만 난 $ resultReadCat [ '설명'] 내 프로젝트 및 작동하지 않습니다. – OzzC

답변

0

귀하의 코드가 잘못되었습니다. 당신은 당신이

$readCat= $pdo->prepare("SELECT description FROM categories,news WHERE id_category= ? AND id_category = category"); 
     $readCat->bindValue(1,$resultReadNews ['category']); 
     $readCat->execute(); 
     $resultReadCat = $readCat->fetch(PDO::FETCH_ASSOC); 
     $rowsCat = $readCat->rowCount(); 

이 두 테이블에서 설명을 선택하려고하지만이 같은 떨어지게되어 있어야합니다

$readCat= $pdo->prepare("SELECT description FROM categories WHERE id_category= ?"); 
     $readCat->bindValue(1, $resultReadNews ['category']); 
     $readCat->execute(); 
     $resultReadCat = $readCat->fetch(PDO::FETCH_ASSOC); 
     $rowsCat = $readCat->rowCount(); 
+0

하지만 "1"을 사용하여 값을 바인딩해야합니까? – OzzC

+0

@OzzC 확실합니다. 오타입니다. –

1

잘못된 열 이름을 선택했습니다. 이 행이 행

echo '<td>'.$resultReadCat ['title'].'</td>'; 

을 변경해야합니다 : 카테고리를 선택

echo '<td>'.$resultReadCat ['description'].'</td>'; 
+0

또한 코드를 수정하여 두 번의 호출을 수행하는 대신 단일 호출에서 모든 infromaiton을 얻을 것을 제안합니다. SQl 문은 다음과 같습니다. SELECT * FROM noticias LEFT JOIN categories ON noticias.category = categories.id_category – JesusAlvSoto

+0

고맙지 만 문제를 해결하지 못했습니다! – OzzC

+0

글쎄, 지금은 내 질문에 넣어 SQL statment 문제를 해결합니다! 당신의 도움을 주셔서 감사합니다! – OzzC

관련 문제