DB 에 주소저장 방법
본문
<?php
$con=mysqli_connect("localhost","sun7684","qwer1234","sun7684");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$ID = $_GET['ID'];
$WR_2 = $_GET['WR_2'];
$WR_3 = $_GET['WR_3'];
$WR_4 = $_GET['WR_4'];
$result = mysqli_query($con,"SELECT mb_point FROM g5_member where mb_id='$ID'");
$row = mysqli_fetch_array($result);
$data = $row[0];
if($data){
echo number_format($data);
}
$data_stream = "'".$_GET['ID']."','".$_GET['WR_2']."','".$_GET['WR_3']."','".$_GET['WR_4']."'";
$query = "insert into g5_write_z1(mb_id,wr_2,wr_3,wr_4) values (".$data_stream.")";
$result = mysqli_query($con, $query);
mysqli_close($con);
?>
위 코드로 실행을 하게되면 아래 처럼 주소가 정상적으로 표시가 됩니다.
이상태에서 전화번호로 검색을 하면
이처럼 열람중이라고만 뜨고.. 전화번호와 주소가 보이지 않습니다
그래서.. 다시 아래처럼 코드 변경을 해서... 진행을 하니
전화 번호 검색을 해도.. 정상적으로 검색이 됩니다
하지만 여기서 문제는 아래 사진처럼 디비 저장될때 주소부분이 저장이 안되는 증상입니다
아래에 코드 올려 드립니다......
wr_2 필드가 주소 부분인데요 주소를 저장하는 방법을 알고 싶습니다.
<?php
$con=mysqli_connect("localhost","sun7684","qwer1234","sun7684");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$ID = $_GET['ID'];
$WR_2 = $_GET['WR_2'];
$WR_3 = $_GET['WR_3'];
$WR_4 = $_GET['WR_4'];
$result = mysqli_query($con,"SELECT mb_point FROM g5_member where mb_id='$ID'");
$row = mysqli_fetch_array($result);
$data = $row[0];
if($data){
echo number_format($data);
}
mysqli_close($con);
?>
<?php
define('_INDEX_', true);
include_once('./_common.php');
function insert_write($newpost)
{
global $g5;
//게시판 테이블 정보
$bo_table = $newpost[bo_table];
if(!strlen($bo_table)) return FALSE; //bo_table 값이 지정되지 않았습니다.
$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' ");
if(!$board) return FALSE; //bo_table이 존재하지 않습니다.
//회원정보 및 권한 확인
$member = get_member($newpost[mb_id]);
if(!$member) return FALSE; //mb_id가 존재하지 않습니다.
//if($board[bo_write_level] > $member[mb_level]) return FALSE; //글쓰기 권한이 없습니다.
//카테고리 설정
$ca_name = $newpost[ca_name];
if ($ca_name && strpos($board[bo_category_list], $ca_name) === FALSE){
$category_list = $board[bo_category_list]."|".$ca_name;
$sql = " update {$g5['board_table']} set bo_category_list = '$category_list' where bo_table = '$bo_table' ";
sql_query($sql);
}
//변수 정리
$write_table = $g5[write_prefix].$bo_table;
$wr_num = get_next_num($write_table);
$ca_name = addslashes($ca_name);
$html = "html1";
$secret = "";
$mail = "";
$wr_subject = addslashes(trim($newpost[wr_subject]));
$wr_content = addslashes(trim($newpost[wr_content]));
if(!$wr_subject) return FALSE; //글 제목이 없습니다.
if(!$wr_content) return FALSE; //글 내용이 없습니다.
$mb_id = $member[mb_id];
$wr_password = $member[mb_password];
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
for($i=1; $i<=10; $i++){
$wr = "wr_{$i}";
${$wr} = addslashes($newpost[$wr]);
}
$wr_link1 = $newpost[wr_link1];
$wr_link2 = $newpost[wr_link2];
//글 입력하기
$sql = " insert into $write_table
set wr_num = '$wr_num',
wr_reply = '',
wr_comment = 0,
ca_name = '$ca_name',
wr_option = '$html,$secret,$mail',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$mb_id',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '".G5_TIME_YMDHIS."',
wr_last = '".G5_TIME_YMDHIS."',
wr_ip = '{$_SERVER['REMOTE_ADDR']}',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10' ";
sql_query($sql);
$wr_id = sql_insert_id();
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' "); //부모 아이디에 UPDATE
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '$mb_id' ) "); //새글 INSERT
sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}' "); //게시글 1 증가
return array('bo_table' => $bo_table, 'wr_id' => $wr_id, 'sca' => $ca_name);
//return TRUE;
}
//$newpost[mb_id], $newpost[bo_table], $newpost[wr_subject], $newpost[wr_content] 값만 지정하고,
//insert_write($newpost); 라고 실행시키면 글이 해당 게시판에 올라갑니다.
$newpost = array(
'mb_id' => $_GET['ID'],
'wr_2' => $_GET['WR_2'],
'wr_3' => $_GET['WR_3'],
'wr_4' => $_GET['WR_4'],
'bo_table' => 'z1',
'wr_subject' => G5_TIME_YMDHIS.' - 자동등록글',
'wr_content' => "<span style='font-size:14pt;'>이 글은 자동으로 등록되었습니다.</span>"
);
$result = insert_write($newpost);
?>
답변 2
print_r($_GET);
상기 소스를 통해, 앞에서 주소 값이 넘어오는 지 확인해보세요.
!-->그누보드에서는 여분필드 wr_1 ~ wr_10 을 기본적으로 활용할 수 있도록 되어 있습니다.
저장 소스 /bbs/write_update.php 에 보면 wr_1 ~ wr_10 이 DB 에 insert 됨을 확인할 수 있습니다.
그래서 그누보드의 스킨 구조에서 여분필드를 활용하는 경우에는,
wr_2 를 주소 필드로 활용하고자 한다면,
write.skin.php 에 주소 : <input type="text" name="wr_2" />
view.skin.php 에서 표시는 주소 : <?php echo $view['wr_2']?>
list.skin.php 에서 표시는 <?php echo $list[$i]['wr_2'] ?>
검색은, 기존 검색에 <option value="wr_2"<?php echo get_selected($sfl, 'wr_2', true); ?>>주소</option>
만 추가해주는 식으로 하면 됩니다.
별도 정보를 별도 저장하는 부분의 코딩을 하지 않아도 됩니다.
비슷한 스킨 소스를 참고하면 https://sir.kr/bbs/board.php?bo_table=g5_skin&wr_id=7806
이해가 되실 거라 생각합니다.