Drupal db_query_range SQL查询
问题描述:
我试图让这个工作和查询执行,但没有回来。我试过了我能想到的一切,你能发现我做错了什么吗?Drupal db_query_range SQL查询
$nido = $node->nid;
$result = db_query_range('
SELECT i.nid, i.iid, a.fid, p.filename, p.filepath
FROM {drup_image_attach} i
LEFT JOIN {drup_image} a ON i.iid = a.nid
LEFT JOIN {drup_files} p ON a.fid = p.fid
WHERE i.nid = %d AND p.filename = "recipe_thumb"', $nido, 0, 10);
echo "Filepath = " . $result ->filepath. "<br>";
echo "Filepath = " . $result ->filename . "<br>";
echo "IID = " . $result ->iid. "<br>";
echo "NID = " . $result ->nid . "<br>";
}
编辑 - 我整理了几位,但输出仍然是空的!
编辑 - 这是工作代码:
$nodeid = $node->nid;
$get_image = db_query('
SELECT p.filepath as imagefilename
FROM {image_attach} i
LEFT JOIN {image} a ON i.iid = a.nid
LEFT JOIN {files} p ON a.fid = p.fid
WHERE i.nid = %d AND p.filename = "recipe_thumb"', $nodeid);
$obj_image = db_fetch_object($get_image);
$imagefilename = $obj_image->imagefilename;
答
$result
只是一个MySQL(我)资源。您首先必须获取行/对象。
$result = db_query_range(....);
$object = db_fetch_object($result);
print_r $object;
答
假设你有一个范围OB结果而不是一个单一的结果这应该工作。您需要将结果存储在数组中或以不同的方式处理它们。对于单个结果看db_result(),它似乎并没有帮助
$nodeid = $node->nid;
$get_image = db_query('
SELECT p.filepath as imagefilename
FROM {image_attach} i
LEFT JOIN {image} a ON i.iid = a.nid
LEFT JOIN {files} p ON a.fid = p.fid
WHERE i.nid = %d AND p.filename = "recipe_thumb"', $nodeid);
while(($obj_image = db_fetch_object($obj_image)) == TRUE){
$imagefilename[] = $obj_image->imagefilename;
}
嗯......也许有东西在SQL ..我非常想放弃的Drupal DAL,只是做在纯PHP/SQL tbh! – MrFidge 2010-03-26 14:11:11
hiya - 得到它的工作,感谢您的对象提示:) – MrFidge 2010-03-29 16:28:29