sql 문인데 뭔가 잘 못 된거 같아요.
본문
$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
https://dev.mysql.com/doc/apis-php/en/apis-php-function.mysql-fetch-assoc.html
여기를 보시면
mysql_fetch_assoc에 대해서 사용방법과 특징이 나와있습니다.
-------------------
정작 하려고하는일로만 보면
<?php
$query = "SELECT * FROM g5_write_{$boardtable}
WHERE wr_id='{$topic}'
and wr_num is not null
and wr_num != ''
";
$result = sql_query($query);
$wr_num = "";
while ($row = sql_fetch_array($result)) {
$wr_num = $row['wr_num'];
}
echo $wr_num;
?>
로 출력이 가능하지만
어떻게 수행을하던간에 모든 Row의 맨 마지막의 자료의 wr_num 만 출력됩니다.
엄청 비효율적이죠
그럴때에는 order by 와 존재하는 값을 잘 찾는게 더 중요합니다.
!-->mysql_query -> sql_query
mysql_fetch_assoc -> sql_fetch_array 이렇게 변경해보세요.
sql_query 를 사용해 보시고요
해당 쿼리 부분을 $query 부분이 제대로 찍혀서 생성이 되고 있는지 체크해 보시길 바랍니다.
1.
SQL문을 DB에서 실행하면 결과가 있나요?
(SELECT * FROM g5_write_$boardtable WHERE wr_id=$topic)
위의 코드로는 wr_id가 없는 값이면 당연히 $wr_num은 초기화한 ''값을 출력하는게 맞습니다.
2.
wr_id가 pk가 맞다면 찾은 데이터는 1개의 row일 것입니다.
while을 사용할 이유가???