第1037天:php用数组来处理多个if…elseif…,SQL批量替换部分字符串

星期三 少云转晴 2~13℃

js处理重复代码

想解决的问题:避免重复代码。

如下,每个 li 的 onmouseover 和 onmouseout 事件一样:

<li id="city_0" onclick="selectCity(‘hangzhou’,0)" onmouseover="this.className=’jsOver’" onmouseout="this.className=’jsOut’">杭州</li>
<li class="cityPice">|</li>
<li id="city_1" onclick="selectCity(‘shanghai’,1)" onmouseover="this.className=’jsOver’" onmouseout="this.className=’jsOut’">上海</li>

用 js 输出:

<script type="text/javascript">
var cityTxt = ["hangzhou","shanghai"];
var cityTxtName = ["杭州","上海"];
for(i=0; i<cityTxt.length; i++){
 document.write("<li id=\"city_"+i+"\" onclick=\"selectCity(‘"+cityTxt[i]+"’,"+i+")\" onmouseover=\"this.className=’jsOver’\" onmouseout=\"this.className=’jsOut’\">"+cityTxtName[i]+"</li>");
 if(i != cityTxt.length-1){
  document.write("<li class=\"cityPice\">|</li>");
 }
}
</script>


php用数组来处理多个if…elseif…

Ryan 教的方法。

if($city==’hangzhou’){
 $cityName = "杭州";
} elseif ($city==’shanghai’){
 $cityName = "上海";
}

用数组处理:

$cityArr = array("hangzhou"=>"杭州","shanghai"=>"上海");
$cityName = $cityArr[$city];


SQL批量替换部分字符串

说明:

update table[表名] set Fields[字段名] = replace(Fields[字段名],’被替换原内容’,'要替换成的内容’)

实例:

update uh_blogfield set tag = replace(tag,’s:16:"杭州_器材店"’,'s:19:"杭州_器材卖场"’)

参考:http://HI.BAIDU.com/wellme/blog/item/39db17465149f20a6b63e50e.html

相关日志:批量修改 SQL 字段的方法(这里记录的是批量替换字段的所有字符)


uch2.0 "uh_blogfield" 表下的 tag 字段说明

以前一直看不懂这个字段的组成结构,今天测试替换字符串时总算看懂了。

下面是 tag 字段的一个例子:

a:3:{i:1;s:19:"杭州_全部场馆";i:13;s:16:"杭州_器材店";i:14;s:13:"杭州_其他";}

a:3
说明:一共有三个tag

i:1;s:19:"杭州_全部场馆"
说明:i 代表 tag 的 id,s 代表 tag 的字符长度(一个中文占三个字节),双引号里的是 tag 名称

附加说明:如果修改了表 "uh_tag" 的 tagname,并且新的 tagname 字符长度与旧的不一样的话,批量修改表 "uh_blogfield" 的 tag 字段时,要把 s 的值也一并修改,如下:

update uh_blogfield set tag = replace(tag,’s:16:"杭州_器材店"’,'s:19:"杭州_器材卖场"’)

如果没有一并修改 s 值,则该条记录的 tag 字段将读取失败。


友吧今天

uh_tag 表增加 city 字段,以便按城市获取 tag。

限制了场馆标签的最多可选数量。

用户分享的馆场默认为“待审核”“不允许评论”,通过审核后用户如果再次修改,则需要重新审核。

……

今天处理了不少零碎问题,尤其是城市关联方面的逻辑更加清晰明了了。

RSS

上一篇:

下一篇:

发表评论

电子邮件地址不会被公开。 必填项已用*标注