我有3个表与那些相关的领域
posts(id,title)
标签 (id,name)
tags_map (id,id_post,id_tag)
我这样想:
$this->db->select('posts.*,tags.name');
$this->db->from('posts');
$this->db->join('tags_map', 'tags.id_post = posts.id');
$this->db->join('tags', 'tags.id = tags_map.id_tag');
$this->db->group_by('posts.id'); // I can comment this line and same result
Run Code Online (Sandbox Code Playgroud)
这看起来像,但即使是多个tags_map记录,它只返回一个,
如何在一个查询中返回所有内容?
-编辑-
我有点解决它,但需要PHP处理
$this->db->select('posts.*,group_concat(tags.name) as thetags');
Run Code Online (Sandbox Code Playgroud)
这将重新启动字段thethags ='tag1,tag2,tag3'
但我想在标签表上获得其他文件..
并且,例如:
$this->db->select('posts.*,group_concat(tags.name) as 'thetags',group_concat(tags.relevance) as 'therelevances');
我不确定我是否可以信任订单?
你可以告诉我下面的代码有什么错误吗?它既不在中心也不在中间(垂直)对齐文本.
<td> <h2 style = "align:center; vertical-align:middle;">TEXT</h2></td>
Run Code Online (Sandbox Code Playgroud) 我试图在PHP中运行SQL查询并按一个列排序,但按特定顺序排序
我试过这个:
$sql3="SELECT * from extension
where client_id = '".$result2["id"]."'
ORDER BY FIELD(type, 'term', 'queue', 'ivr', 'voicecentre', 'conference', 'callback', 'intercom', 'queuecentre') ";
Run Code Online (Sandbox Code Playgroud)
但它根本就没有订购
使用"延迟加载"检索一对多关系中的相关对象时,是否可以设置最大结果量?
示例:
让我们说一个人有鞋子
$person = $em->find($id);
$person->getShoes();
Run Code Online (Sandbox Code Playgroud)
这将从鞋子表中取出所有东西person_id.但是,如果我只想显示最后5个鞋子添加到数据库中呢?
或者是使用Paginator的唯一解决方案并且:
$em->createQuery('...')->setMaxResult(5);
Run Code Online (Sandbox Code Playgroud) 我正在使用以下jQuery Ajax调用...无论如何它不起作用.
错误:TypeError: a is null
这是我的代码:
var prefixUrl = "autocomplete?action=complete&id=";
$('#complete-field').bind('keyup', function(){
var url = prefixUrl + escape($('#complete-field').val());
$.ajax({
type: "GET",
getUrl:url,
dataType: "xml",
success: function(responseXML) {
var composers = responseXML.getElementsByTagName("composers")[0];
if (composers.childNodes.length > 0) {
$('#complete-table').css("border", "1px solid green");
$('#complete-table').css("margin", "128px 0 0 -82px");
for (var loop = 0; loop < composers.childNodes.length; loop++) {
var composer = composers.childNodes[loop];
var firstName = composer.getElementsByTagName("firstName")[0];
var lastName = composer.getElementsByTagName("lastName")[0];
var composerId = composer.getElementsByTagName("id")[0];
appendComposer(firstName.childNodes[0].nodeValue, lastName.childNodes[0].nodeValue, composerId.childNodes[0].nodeValue);
}
}
},
error:function …Run Code Online (Sandbox Code Playgroud) 我在Wordpress外部的PHP脚本中使用此查询来检索具有其特色图像的条目
SELECT ( SELECT guid FROM wp_posts WHERE id = m.meta_value ) AS url
FROM wp_posts p, wp_postmeta m
WHERE p.post_type = 'post'
AND p.post_status = 'publish'
AND p.id = m.post_id
AND m.meta_key = '_thumbnail_id'
Run Code Online (Sandbox Code Playgroud)
......它工作正常.
但这样我就可以获得全尺寸图片网址.我需要检索这些图像的"中"或"缩略图"大小.
¿任何方法来实现这一目标?
我看了整个互联网,没有找到答案.
基本上我的问题是每当我尝试编辑订单和更改存储时,我得到SyntaxError:JSON.parse:在JSON数据的第1行第1列的数据意外结束在firefox和chrome中的OK我得到SyntaxError:意外的输入结束OK .
有没有人找到一个"真正的"解决方案,因为我尝试了所有建议,但他们不工作.从更改api_id到制作辅助API.甚至是.htaccess方法.
我有两个表,比如说"users"和"users_actions",其中"users_actions"与用户有一个hasMany关系:
用户
id | name | surname | email...
Run Code Online (Sandbox Code Playgroud)
行动
id | id_action | id_user | log | created_at
Run Code Online (Sandbox Code Playgroud)
Model Users.php
class Users {
public function action()
{
return $this->hasMany('Action', 'user_id')->orderBy('created_at', 'desc');
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想检索列表所有的用户与他们的最后一个动作.
我看到 Users::with('action')->get();
只通过简单地获取关系的第一个结果就可以轻松地给我最后一个动作:
foreach ($users as $user) {
echo $user->action[0]->description;
}
Run Code Online (Sandbox Code Playgroud)
但我当然希望避免这种情况,只为每个用户选择最后一个动作.
我尝试使用约束,比如
Users::with(['action' => function ($query) {
$query->orderBy('created_at', 'desc')
->limit(1);
}])
->get();
Run Code Online (Sandbox Code Playgroud)
但是由于Laravel执行此查询,这给了我一个不正确的结果:
SELECT * FROM users_actions WHERE user_id IN (1,2,3,4,5)
ORDER BY created_at
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
这当然是错的.有没有可能在没有使用Eloquent对每条记录执行查询的情况下获得此功能?我是否犯了一些我没有看到的明显错误?我很擅长使用Eloquent,有时甚至是关系让我烦恼.
编辑: …
以下是自定义捆绑包中定义的简单路由
my_admin_route:
pattern: /admin/{name}
defaults: { _controller: NamespaceCustomBundle:CustomControl:login }
Run Code Online (Sandbox Code Playgroud)
上面的路由代码将调用CustomControlController方法loginAction()我的问题是我如何自动化路由中的函数名称,就像每个函数一样,我没有再次定义路由应该有一个路由并自动调用函数作为定义的参数{name}在路线如下
my_admin_route:
pattern: /admin/{name}
defaults: { _controller: NamespaceCustomBundle:CustomControl:{name} }
Run Code Online (Sandbox Code Playgroud) 我创建了一个ENUM字段,这是我的代码:
$field['test'] = array(
'type' => 'ENUM',
'constraint' => array('a','b','c'),
'default'=> "a"
);
$this->dbforge->add_field($field);
$this->dbforge->create_table('demo');
Run Code Online (Sandbox Code Playgroud)
我收到一条消息:
错误号码:1064
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'Array'附近使用正确的语法DEFAULT'a'NOTE NULL)DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci'在第2行
CREATE TABLE
ci_demo(testENUM(Array)DEFAULT'a'NOT NULL)DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
请帮帮我,非常感谢你.
php ×6
mysql ×4
codeigniter ×2
sql ×2
symfony ×2
activerecord ×1
ajax ×1
dbforge ×1
doctrine-orm ×1
eloquent ×1
enums ×1
firefox ×1
html ×1
javascript ×1
join ×1
jquery ×1
json ×1
laravel-5 ×1
opencart ×1
opencart2.x ×1
symfony-2.3 ×1
wordpress ×1