2013-10-04 3 views
0

블로그를 만들고 해당 게시물에 적용되는 모든 의견을 표시하려고합니다.ID를 기반으로 모든 필드 표시

각 게시물에는 ID가 있으며 각 댓글은 게시물 ID와 함께 저장됩니다.

여기 내 코드입니다 :

<?php 
$con = mysql_connect("localhost","cl49-XXX-b","X"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("cl49-XXX-b", $con)or die("Unable to select database line 873"); 
$result=mysql_query("SELECT * FROM blogcomments WHERE ID='".$ID."'") or die('Error on Line 215 :'.mysql_error()); 

echo " <ul class='comments'> "; // first row beginning 
for ($i = 1; $i <= mysql_num_rows($result); $i++) 
{ 
    $row = mysql_fetch_array($result); 
    $name = $row['name']; 
    $email = $row['email']; 
    $comment = $row['comment']; 
    $created=$row['created']; 

echo" <li> 
       <div class='comment'> 
        <div class='thumbnail'> 
         <img class='avatar' alt='' src='img/avatar.jpg'> 
        </div> 
        <div class='comment-block'> 
         <div class='comment-arrow'></div> 
         <span class='comment-by'> 
          <strong>$name</strong> 
          <span class='pull-right'> 
           <span> <a href='#'><i class='icon-reply'></i> Reply</a></span> 
          </span> 
         </span> 
         <p>$comment</p> 
         <span class='date pull-right'>$created</span> 
        </div> 
       </div> "; 

echo " </li>"; // it's time no move to next row 
       }   

    ?> 

내 DB 올바른 ID 3 개 의견을 가지고 있지만 나는 페이지가 하나의 주석을 보여줍니다이 코드를 실행

. 이 수행 할 때

+0

foreach 대신 루프를 사용하게 된 이유가 무엇입니까? – RSM

+0

또한, mysql_num_rows ($ result)의 결과는 무엇입니까? – RSM

+2

for 루프 대신에 while ($ row = mysql_fetch_assoc ($ result)) {'시도해보십시오. –

답변

1

나는 mysql_이 가치가 떨어졌기 때문에 mysqli_을 사용하는 것을 고려할 것이다.

<?php 
$DBServer = 'localhost'; 
$DBUser = 'xxxx'; 
$DBPass = 'xxxx'; 
$DBName = 'xxxx'; 

$mysqli = new mysqli($DBServer, $DBUser, $DBPass, $DBName); 

if ($mysqli->connect_errno) { 
    echo "Failed to connect to the database: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

$query = "SELECT * FROM blogcomments WHERE ID='". $ID ."'"; 

echo " <ul class='comments'> "; 

if ($result = $mysqli->query($query)) { 

    while ($row = $result->fetch_assoc()) { 
?> 

<li> 
    <div class='comment'> 
     <div class='thumbnail'> 
      <img class='avatar' alt='' src='img/avatar.jpg'> 
     </div> 
     <div class='comment-block'> 
      <div class='comment-arrow'></div> 
       <span class='comment-by'> 
        <strong><?php echo $row['name']; ?></strong> 
        <span class='pull-right'> 
         <span><a href='#'><i class='icon-reply'></i> Reply</a></span> 
        </span> 
       </span> 
       <p><?php echo $row['comment']; ?></p> 
       <span class='date pull-right'><?php echo $row['created']; ?></span> 
      </div> 
     </div> 
    </div> 
</li> 

<?php 

    } $result->close(); 
} $mysqli ->close(); 

echo "</ul>"; 


?> 

내가 버그이 테스트를하지 않은,하지만 나를 더 자세한 정보 같은 경우를 알려 : 나는 또한 while 루프를 사용하는 것이 좋습니다 것, 희망이 도움이됩니다.

0

는 :

mysql_query("SELECT * FROM blogcomments WHERE ID='".$ID."'") 

을 당신은 데이터베이스에 하나의 주석을 선택합니다. 은 아마 당신은해야한다 :

mysql_query("SELECT * FROM blogcomments WHERE post_ID='".$post_ID."'") 
0

당신이 ID 필드 값이 테이블 blogcomments에서 $ID 인 행을 선택하기 때문에.

"post_id"와 같은 필드에 주석이 연결된 참조 된 post_id를 저장하는 것 같습니다. 당신은 문제가있는 테이블의 구조를 넣으면 당신은 당신의 <ul>을 폐쇄하지 않는 :

0

, 내가 도움이 될 수 있습니다)

, 당신은 더 나은 해당 필드로 선택 쿼리를 가리 킵니다. HTML 형식 문제 일 수 있습니까?

관련 문제