十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
比如你有两个表 pre_first pre_second 并且你数据库配置文件已经配置了表前缀那么你可以这么写
目前创新互联公司已为数千家的企业提供了网站建设、域名、网络空间、网站托管、服务器托管、企业网站设计、凌云网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
$First=new \Think\Model("First");
//联表查询条件
$arrJoin=array(
"__SECOND__ as s on f.id=s.id ",
);
$list=$First-alias('f')-join($arrJoin,'LEFT')-select();
1、二维转一维:
function fixArray($r,$k)
{
$out = array();
foreach ($r as $key=$val) {
if (is_array($val)){
$out = array_merge($out, fixArray($val,$key));
} else{
$out["'$key'"] = $val;//$val;
}
}
return $out;
}
$arr =array(
'2'=array('5'='ok','6'='good'),
'3'=array('7'='yes','8'='cool'),
'4'=array('9'='look')
);
$output = fixArray($arr,"");
print_r($output);
2、你说的带主键名3,基本上不可能实现,因为如果键名相同,则值会互相覆盖,或者还是需要用2维数组。
function dedecmsokhx($string, $num)
preg_match_all("/img([^]*)\a*alt=('|\")([^'\"]+)('|\") s*src=('|\")([^'\"]+)('|\")/",$string,$matches);
$imgsrc_arr = array_unique($matches[6]);//这里写成6获取到的是src值,写成3是获取到alt值
$i = 0;
foreach($imgsrc_arr as $imgsrc)//怎么让foreach可以同时取出imgalt和imgsrc的值呢
if($i == $num) break;
$result .= "lia href='{$imgsrc}' title='{$imgalt}'img src='{$imgsrc}' alt='{$imgalt}'/a/li
";
$i++;
return $result;
字段可以用别名代替,我可以理解为变量吗
如果在SQL里面查询肯定是不能代替的,以为数据库字段是唯一的,你要查询数据,必须要找到知道他的名字才能查询到。
thinkphp的关联模型,就是简化你的jion操作。所以,本质上,关联模型,就是处理表连接关系的。归根结底的,就是让你在用模型操作的时候,简化SQL查询的join操作。(是简化操作,而不是改变SQL语句。)
先举个例子。一个用户表,一个文章表。一个用户对应多篇文章。然后,你现在会经常出现如下需求:取得某人的文章记录,但是呢,只要求显示,用户名,文章名,文章ID,文章日期(其他的,比如,什么用户邮箱啊,用户密码啊,文章类型啊,文章修改日期啊,文章标签啊,你都不需要)这个时候,你就可以定义一个试图模型,然后在 $viewFields 里面,就可以把你经常使用需要调用的那个几个字段,按照thinkphp的规定,定义进去。
如下参考
class ArticleViewModel extends ViewModel {
public $viewFields = array(
'Article'=array('name','title'....其他字段),
'Author'=array('title'='category_name', '_on'='article.auid=author.id'),
'Article_class'=array(字段定义如上,具体规则,下面有介绍, '_on'=上面已经给你写了一个,这里其实就是写,article,和article_class 的主外键,对应关系。即JOIN ....ON..语句,ON部分的多内容),
'article_type'=array('field_realename'='field_alias'。这里就相当于查询语句SELECT 字段 字段的别名。这样的对应关系。)
);
}