我在尝试获取 SQL 查询所需的所有数据时遇到了一些重大问题。我对查询还是陌生的,所以我会尽可能地描述这一点。
我正在尝试使用 Wordpress 插件 NextGen Gallery 进行交叉查询。基本上有两个表nggalbum
和nggallery
。我正在尝试做的是创建所有专辑和画廊的嵌套列表。
中的数据nggalbum
包含id
、name
、slug
、previewpic
、albumdesc
、sortorder
、 和列pageid
。我感兴趣的唯一值是id
、name
、slug
和sortorder
。的值sortorder
是具有此条目以及所有其他专辑和画廊条目的关系数据的序列化数据。例如:a:2:{i:0;s:2:"a2";i:1;s:2:"a6";}
这基本上意味着当前查询项目有两个子专辑(它们对应的 id 以“a”为前缀):a2
和a6
。如果它有画廊,则数字没有a
前缀并且是ngggallery
gid
(将在一秒钟内涵盖)。
我用它来获取nggalbum
表中的所有数据:
$albums = $wpdb->get_results("SELECT * FROM $wpdb->nggalbum" , OBJECT_K );
foreach ($albums as $key => $value) {
$albums[$key]->id = 'a' . $key;
$albums[$key]->galleries = empty ($albums[$key]->sortorder) ? array() : (array) unserialize($albums[$key]->sortorder) ;
$albums[$key]->name = stripslashes( $albums[$key]->name );
$albums[$key]->albumdesc = stripslashes( $albums[$key]->albumdesc );
}
样本数据:
Array
(
[1] => stdClass Object
(
[id] => a1
[name] => Image Gallery
[slug] => image-gallery
[previewpic] => 0
[albumdesc] =>
[sortorder] => a:2:{i:0;s:2:"a2";i:1;s:2:"a6";}
[pageid] => 0
[galleries] => Array
(
[0] => a2
[1] => a6
)
)
[2] => stdClass Object
(
[id] => a2
[name] => ALBUM 1 - High res
[slug] => album-1-high-res
[previewpic] => 0
[albumdesc] =>
[sortorder] => a:2:{i:0;s:1:"2";i:1;s:1:"3";}
[pageid] => 0
[galleries] => Array
(
[0] => 2
[1] => 3
)
)
我为所有这些 id 添加了一个a
前缀,因为它们是专辑,我认为这可能会有所帮助。由于我不确定自己在做什么,因此可能并非如此。
nggallery
包含列gid
, name
, slug
, path
, title
, galdesc
, pageid
, previewpic
, 和author
. 唯一相关的列是gid
、name
、slug
、path
和title
。
我用它来获取nggallery
表中的所有数据:
$galleries = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->nggallery", OBJECT_K );
foreach ($galleries as $key => $value) {
$galleriesID[] = $key;
$galleries[$key]->counter = 0;
$galleries[$key]->title = stripslashes($galleries[$key]->title);
$galleries[$key]->galdesc = stripslashes($galleries[$key]->galdesc);
$galleries[$key]->abspath = WINABSPATH . $galleries[$key]->path;
}
样本数据:
Array
(
[2] => stdClass Object
(
[gid] => 2
[name] => new_collection
[slug] => new-collection
[path] => wp-content/gallery/new_collection
[title] => NEW COLLECTION
[galdesc] =>
[pageid] => 0
[previewpic] => 8
[author] => 1
[counter] => 0
[abspath] => /Applications/MAMP/htdocs/igal/wp-content/gallery/new_collection
)
[3] => stdClass Object
(
[gid] => 3
[name] => cha-collection
[slug] => cha-collection
[path] => wp-content/gallery/cha-collection
[title] => CHA COLLECTION
[galdesc] =>
[pageid] => 0
[previewpic] => 15
[author] => 1
[counter] => 0
[abspath] => /Applications/MAMP/htdocs/igal/wp-content/gallery/cha-collection
)
现在这是我卡住的地方。我真的很希望能够编写一些代码来解析每个专辑的galleries
数组并将其与nggallery
.
最终,我很想实现专辑/画廊的嵌套列表,例如:
(a1) [link] Title
(a2) [link] Title
1 [link] Title
2 [link] Title
3 [link] Title
(a3) [link] Title
1 [link] Title
[...]
我不完全确定如何开始做这件事。我尝试通过一些语句循环一些东西,但foreach
基本上没有成功。我会在谷歌上搜索这个,但我不知道这种技术叫什么。
我真的很想了解如何做这样的事情,所以如果你能对这种技术有所了解,我将不胜感激。指向类似教程或只是基本概念的链接对我非常有益。我不希望任何人为我编写所有代码,但我们将不胜感激朝着正确方向迈出的任何一步(如果你想编写代码,通过一些步骤,我当然不会争辩;))。
提前非常感谢!
特雷