필드 추가 안하고 사용할때 소스 줄이기 > 그누3 팁자료실

그누3 팁자료실

필드 추가 안하고 사용할때 소스 줄이기 정보

필드 추가 안하고 사용할때 소스 줄이기

본문

만약  t1~t40까지 나올때..
============================================
$wr_1 = "$t1||$t2||$t3||$t4||$t5||$t6||$t7||$t8||$t9||$t10||$t11||$t12||$t13||$t14||$t15||$t16||$t17||$t18||$t19||$t20||$t21||$t22||$t23||$t24||$t25||$t26||$t27||$t28||$t29||$t30||$t31||$t32||$t33||$t34||$t35||$t36||$t37||$t38||$t39||$t40";

노가다인듯해서

for문으로 돌려봤습니다
============================================
for ($i=1 ; $i < 41; $i++)
{
  $wr_1.=${'t'.$i};
  if($i < 40)
  {
    $wr_1.= "||";
  }
}

============================================


그누보드에 사용할려면
gbupdat.skin.php  <<==스킨파일에
============================================
<?
for ($i=1 ; $i < 41; $i++)
{
  $wr_1.=${'t'.$i};
  if($i < 40)
  {
    $wr_1.= "||";
  }
}

if(!$wr_comment) {  // 코멘일때는 저장하면 안됩.
    sql_query(" update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' ");
}
?>
==============================================
요기까지 ^^

============================================
뷰(gbview.skin.php)  파일도

<?
$ot = explode("|",$write[wr_1]);
$t1 = $ot[0];
$t2 = $ot[1];
$t3 = $ot[2];
$t4 = $ot[3];
$t5 = $ot[4];
$t6 = $ot[5];
$t7 = $ot[6];
$t8 = $ot[7];
$t9 = $ot[8];
$t10 = $ot[9];
$t11 = $ot[10];
$t12 = $ot[11];
$t13 = $ot[12];
$t14 = $ot[13];
$t15 = $ot[14];
$t16 = $ot[15];
$t17 = $ot[16];
$t18 = $ot[17];
$t19 = $ot[18];
$t20 = $ot[19];
?>

이눔도
for문으로
==================================
<?
$ot = explode("|",$write[wr_1]);
for ($i=1,$j=0 ; $i < 21; $i++,$j++)
{
${'t_'.$i} = $t[$j];
}
?>
=================================

포인트를 늘리자 포인트를 늘리자 ^_^;;;;;;;;;;;;;;;;;;;;;;



sjsjin 님에 팁

장점 : 배열 무제한으로 사용할수 있다는 장점이 있네요..
        위에 있는 팁을 사용시 40개만 사용하는데 sjsjin 님에 팁 사용시 무제한으로 가능합
------------------------------------------------------------------------------------------------------------------------

// 아래처럼 수정해서 쓰시는게 맞을듯 합니다..이유는 배열값이 항상 정해져 있는게 아니라는 가정하에서..

// gbupdate.skin.php

// 넘어오는 $t? 값을 계산하기 위해서 $_POST 로 넘어오는 것만큼 카운트해서 $t? 수를 계산해서 저장하고,
for($k=0; $k<count($_POST); $k++){
    if($_POST["t$k"]){
        $temp[$k] = $_POST["t$k"];
    }
}
// 특정기호(위 예문에서 || 기호) 로 합친다.
$wr_1 = implode("||", $temp);

// 인서트
if(empty($w)){
    sql_query("update $write_table set wr_1 = '$wr_1' where wr_id = '".$_POST['wr_id']."' ");
}else if($w == 'u'){
  sql_query("update $write_table set wr_1 = '$wr_1' where wr_id = '".$wr['wr_id']."' ");
}


// gbview.skin.php
$temp = explode("||", $write['wr_1']);
for($i=0; $i<count($temp); $i++){
    ${"t."$i} = $temp[$i];
}

* 쓰기폼에서도 위와같은 형식을 이용하면 됩니다.
그리고 위 예문에서 중괄호({}) 로 파싱하는 것은 좋지 않은 습관입니다.
쓰기폼에서 배열로 순서를 주고, 인서트파일, 뷰파일에서도 배열로 주는 것이 좋습니다.

// 예) : 뷰/쓰기폼
$temp = explode("||", $write['wr_1']);
for($i=0; $i<count($temp); $i++){
    $t[$i] = $temp[$i];
}

// 인서트
for($k=0; $k<count($_POST['t']); $k++){
    $temp[$k] = $_POST['t'][$k];
}
$wr_1 = implode("||", $temp);
추천
0

댓글 전체

코멘트 작성시 어떻게 되는지 체크해보셔야 할듯 합니다
예전에 다음처럼 하지 않았을때.... 코멘트 작성시 wr_1의 필드가 클리어 되는 문제가 있었습니다 ^^

if(!$wr_comment) {  // 코멘일때는 저장하면 안됩.
    sql_query(" update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' ");
}
코멘트 달아두 wr_1 값이 클리어 되는 증상이 안나오네요
===================================================
if ($w == '' || $w == 'r') {
$sql = " update $write_table  set wr_1 = '$wr_1'  where wr_id = '$wr_id'";
sql_query($sql);
}

if ($w == 'u') {
$sql = " update $write_table  set wr_1 = '$wr_1'  where wr_id = '$wr[wr_id]' ";
sql_query($sql);
}
===================================================
$w=='c' 이게 없어서 안되는듯 싶네요

근데 Root님 소스가 더 간단하네요 수정 수정
// 아래처럼 수정해서 쓰시는게 맞을듯 합니다..이유는 배열값이 항상 정해져 있는게 아니라는 가정하에서..

// gbupdate.skin.php

// 넘어오는 $t? 값을 계산하기 위해서 $_POST 로 넘어오는 것만큼 카운트해서 $t? 수를 계산해서 저장하고,
for($k=0; $k<count($_POST); $k++){
    if($_POST["t$k"]){
        $temp[$k] = $_POST["t$k"];
    }
}
// 특정기호(위 예문에서 || 기호) 로 합친다.
$wr_1 = implode("||", $temp);

// 인서트
if(empty($w)){
    sql_query("update $write_table set wr_1 = '$wr_1' where wr_id = '".$_POST['wr_id']."' ");
}else if($w == 'u'){
  sql_query("update $write_table set wr_1 = '$wr_1' where wr_id = '".$wr['wr_id']."' ");
}


// gbview.skin.php
$temp = explode("||", $write['wr_1']);
for($i=0; $i<count($temp); $i++){
    ${"t."$i} = $temp[$i];
}

* 쓰기폼에서도 위와같은 형식을 이용하면 됩니다.
그리고 위 예문에서 중괄호({}) 로 파싱하는 것은 좋지 않은 습관입니다.
쓰기폼에서 배열로 순서를 주고, 인서트파일, 뷰파일에서도 배열로 주는 것이 좋습니다.

// 예) : 뷰/쓰기폼
$temp = explode("||", $write['wr_1']);
for($i=0; $i<count($temp); $i++){
    $t[$i] = $temp[$i];
}

// 인서트
for($k=0; $k<count($_POST['t']); $k++){
    $temp[$k] = $_POST['t'][$k];
}
$wr_1 = implode("||", $temp);
전체 1,026
그누3 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT