原来数据库的字段类型是SMALLINT,是插入一个的,但是后来修改了,修改成插入1,2,4,5这样的,smallint类型不支持,所以就改成了TINYTEXT,更改以后array这个好像不行了,请教下该怎么改回来既可以插入1,2,3,4,5这样的,array又可以用

解决方案 »

  1.   

    改成varchar呢? 什么叫array不行了   什么意思?
      

  2.   

    不明白说什么  直接用varchar不行吗
      

  3.   

    开始猜谜语了。楼主你是想把从数据库中查询出数据以后保存为一个数组是吗?
    $str = '1,2,3,4,5'; //这是从数据库中取得的数据
    $ar = explode(',', $str); //分割为数组
    unset($ar[0]); //修改数据
    $str = join(',', $ar); //再将数组合并为一个字符串
    echo $str;
      

  4.   

    代码在下面,是dede的一个,原来的时候typeid是smallint的类型,现在改成text以后变成了1,2,3这样的储存形式
    <?php
    require_once (dirname(__FILE__) . "/../include/common.inc.php");
    define('DEDEADMIN', DEDEROOT.'/wyc1982'); //dede修改为你后台的文件夹名称
    require_once(DEDEINC.'/userlogin.class.php');
    require_once(DEDEADMIN.'/../include/common.inc.php');
    require_once(DEDEINC.'/typelink.class.php');
    require_once(DEDEINC.'/datalistcp.class.php');
    require_once(DEDEADMIN.'/inc/inc_list_functions.php');
    require_once(DEDEADMIN.'/inc/inc_batchup.php');
    require_once(DEDEADMIN.'/inc/inc_archives_functions.php');
    require_once(DEDEINC.'/typelink.class.php');
    require_once(DEDEINC.'/arc.archives.class.php');
    require_once(DEDEADMIN."/inc/inc_archives_functions.php");
    require_once(DEDEINC."/arc.partview.class.php");$dsql1 = new DedeSql(false);
    $query = "select * from `#@__check_time`";
    $dsql1->Execute('me',$query);
    while($row1 = $dsql1->GetArray())
    {
        $now = time();
    $date = getdate($now);
    $hours = $date[hours];
      if($hours>=$row1['start_time'] and $hours<$row1['end_time'])
      {
        $interval = ($row1['end_time'] - $row1['start_time']) * 3600;
    if($now - $row1['check_time'] > $interval)
    {
    $amount = $row1['amount'];
    $qstr = "";
    $dsql2 = new DedeSql(false);

    if($row1['lmorzs'] == 0) //按照栏目更新
    {
    $query = "select id,typeid from `#@__archives` where arcrank=-1 and channel=1 order by typeid,id";
    $dsql2->Execute('me',$query);
    $typeid_now = -2;
    while($row2 = $dsql2->GetArray())
    {
      if($typeid_now !=  $row2['typeid'])
      {
     $typeid_now = $row2['typeid'];
     $count = 1;
      }
      else $count++;
      if($count <= $amount)
      {
      if($qstr == "") $qstr = $row2['id']; 
              else $qstr = $qstr."`".$row2['id'];
      }
    }
    }
    else //按照总数更新
    {
    $query = "select id from `#@__archives` where arcrank=-1 and channel=1 limit 0,$amount";
    $dsql2->Execute('me',$query);
    while($row2 = $dsql2->GetArray())
    {
      if($qstr == "") $qstr = $row2['id']; 
      else $qstr = $qstr."`".$row2['id'];
    }
    }

    if($qstr != "")
    {
    //审核更新文档开始
    $is_check = 1;
    $maxpagesize = $row1['maxpagesize'];
    $arcids = ereg_replace('[^0-9,]','',ereg_replace('`',',',$qstr));
    $query = "Select arc.id,arc.typeid,ch.issystem,ch.maintable,ch.addtable From `#@__arctiny` arc
    left join `#@__arctype` tp on tp.id=arc.typeid
    left join `#@__channeltype` ch on ch.id=tp.channeltype
    where arc.id in($arcids) ";
    $dsql->SetQuery($query);
    $dsql->Execute('ckall');
    $typediarr = array();
    while($row = $dsql->GetArray('ckall'))
    {
    if (!in_array($row['typeid'],$typediarr))
    {
       array_push($typediarr,$row['typeid']);
    }
    $aid = $row['id'];
    $maintable = ( trim($row['maintable'])=='' ? '#@__archives' : trim($row['maintable']) );
    $dsql->ExecuteNoneQuery("Update `#@__arctiny` set arcrank='0',sortrank='$now',senddate='$now' where id='$aid' ");
    if($row['issystem']==-1)
    {
    $dsql->ExecuteNoneQuery("Update `".trim($row['addtable'])."` set arcrank='0' where aid='$aid' ");
    }
    else
    {
    $dsql->ExecuteNoneQuery("Update `$maintable` set arcrank='0',sortrank='$now',pubdate='$now',senddate='$now' where id='$aid' ");
    }
    $pageurl = MakeArt($aid,false);
    }//while
    //审核更新文档结束

    //更新主页
    $GLOBALS['_arclistEnv'] = 'index';
    $row = $dsql->GetOne("Select * From `#@__homepageset`");
    $row['templet'] = MfTemplet($row['templet']);
    $pv = new PartView();
    $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
    $pr_homefile = DEDEROOT.'/index.html';
    $pv->SaveToHtml($pr_homefile);
    //更新主页

    $query = "Update `#@__check_time` set check_time=$now where id='".$row1['id']."' "; //更新审核时间
        $dsql2->ExecuteNoneQuery($query);


    }//if
    }//if
      }//if
    }//while
    //更新栏目开始
    if($is_check == 1)
    {
        require_once(DEDEROOT."/data/cache/inc_catalog_base.inc");
        require_once(DEDEINC."/channelunit.func.php");
    require_once(DEDEINC."/arc.listview.class.php");
    foreach($typediarr as $typeid)
    {
        $lv = new ListView($typeid);
            //$reurl = $lv->MakeHtml();
    $reurl = $lv->MakeHtml(1,$maxpagesize);
    }}
    //更新栏目结束
      AjaxHead();
    ?>
      

  5.   

    对应
    “typeid是smallint的类型,现在改成text以后变成了1,2,3这样的储存形式”对应typeid的处理也要适应text了。直接这样$row2['typeid'];。肯定不行了。所以要拆分,处理一下
      

  6.   

    array array_slice (array array, int offset[,int length])
      

  7.   

    array array_splice ( array array , int offset[,length[,array replacement]])