테스트 사이트 - 개발 중인 베타 버전입니다

sql 문인데 뭔가 잘 못 된거 같아요. 채택완료

스노든 7년 전 조회 4,059


              $query = "SELECT * FROM g5_write_$boardtable WHERE wr_id=$topic  ";
              $result = mysql_query($query);
              if (!$result) {
                die('Invalid query: ' . mysql_error());
              } 
                 $wr_num = '';

              while ($row = @mysql_fetch_assoc($result)){
                $wr_num = $row['wr_num'];
                // Add to XML document node
              }

              // Select all the rows in the markers table
              // A && 1 day

              echo $wr_num;   

 

 

위와 같이 했는데 echo $wr_num; 이 것이 출력되지 않습니다. 

그리고 또한 

              while ($row = @mysql_fetch_assoc($result)){
                $wr_num = $row['wr_num'];
                // Add to XML document node
              }

위 sql 말고 더 간단하게 할 수 있는 sql 문을 알려주세요.

위에 것 때문에 안되는거 같아요.

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
플래토
7년 전

https://dev.mysql.com/doc/apis-php/en/apis-php-function.mysql-fetch-assoc.html

 

여기를 보시면

mysql_fetch_assoc에 대해서 사용방법과  특징이 나와있습니다.

-------------------

정작 하려고하는일로만 보면

</p>

<p><?php</p>

<p> </p>

<p>    $query = "SELECT * FROM g5_write_{$boardtable} </p>

<p>                     WHERE wr_id='{$topic}' </p>

<p>                       and wr_num is not null </p>

<p>                       and wr_num != '' </p>

<p>                      ";

    $result = sql_query($query);</p>

<p>    $wr_num = "";</p>

<p>    while ($row = sql_fetch_array($result)) {</p>

<p>        $wr_num = $row['wr_num'];</p>

<p>    }</p>

<p>    echo $wr_num;</p>

<p>?></p>

<p>

 

로 출력이 가능하지만

 

어떻게 수행을하던간에 모든 Row의 맨 마지막의 자료의 wr_num 만 출력됩니다.

엄청 비효율적이죠

 

그럴때에는 order by 와 존재하는 값을 잘 찾는게 더 중요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

p
7년 전

1.

SQL문을 DB에서 실행하면 결과가 있나요?

(SELECT * FROM g5_write_$boardtable WHERE wr_id=$topic)

위의 코드로는 wr_id가 없는 값이면 당연히 $wr_num은 초기화한 ''값을 출력하는게 맞습니다.

 

2.

wr_id가 pk가 맞다면 찾은 데이터는 1개의 row일 것입니다.

while을 사용할 이유가???

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

스노든
7년 전
while 말고 다른걸 사용할 줄 몰라서 그래요.
sql 구문을 사용할 줄 몰라서요.
알려주시면 감사하겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

플라이
7년 전

sql_query 를 사용해 보시고요

 

해당 쿼리 부분을 $query 부분이 제대로 찍혀서 생성이 되고 있는지 체크해 보시길 바랍니다.

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

7년 전

mysql_query -> sql_query

mysql_fetch_assoc -> sql_fetch_array 이렇게 변경해보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인