首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果值不为null,则MySQL -循环查询

如果值不为null,则MySQL -循环查询
EN

Stack Overflow用户
提问于 2016-08-04 20:38:02
回答 1查看 536关注 0票数 0

我目前有一个如下所示的数据库表设置:

代码语言:javascript
复制
| id | thing_id | value

"thing_id“与同一表中的唯一ID有关。

我正在尝试创建一个函数(在PHP中),该函数将对MySQL数据库运行查询,将该信息转储到数组中,如果"thing_id“不为空,它将返回并再次运行查询,并将有关信息添加到现有数组中。这将一直持续到"thing_id“为空为止。

我该怎么做呢?顺便说一句,我是在WordPress上设计的。

下面的方法很有效,但我觉得有更好的方法来做到这一点。我如何简化它,使它不占用资源?以下是我所拥有的:

代码语言:javascript
复制
        $related_thingsSql = "
                            SELECT $thingsDB.value, $thingsDB.thing_id, $thingsDB.id
                            FROM $thingsDB
                            WHERE $thingsDB.id = '$related_thing_id'
                            ";              

        $related_things = $wpdb->get_results( "$related_thingsSql" );

        foreach ($related_things as $related_thing) {
            $related_thing_name[] = $related_thing->value;  
            $related_thing_id2[] = $related_thing->id;
            $related_thing_id = $related_thing->thing_id;                   
        }
        while ($related_thing_id != NULL) {
            $related_thingsSql2 = "
                                    SELECT $thingsDB.value, $thingsDB.thing_id, $thingsDB.id
                                    FROM $thingsDB
                                    WHERE $thingsDB.id = '$related_thing_id'
                                ";                                              
            $related_things = $wpdb->get_results( "$related_thingsSql2" );
            foreach ($related_things as $related_thing) {
                array_unshift($related_thing_name, $related_thing->value);
                array_unshift($related_thing_id2, $related_thing->id);
                $related_thing_id = $related_thing->thing_id;
                if (empty($related_thing->thing_id)) {
                    $related_thing_id = NULL;   
                }
            }
        }
        $related_things_length = count($related_thing_name);

        for ($x = 0; $x < $related_things_length; $x++) {
            echo ' > <a href="' . site_url() . '?id=' . $related_thing_id2[$x] . '">' . $related_thing_name[$x] . '</a>';
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-04 21:41:53

我想出了一个可行的办法。我觉得这样做很草率,但很有效。如果有人对如何改进这一点有任何建议,请放心。

代码语言:javascript
复制
            $related_thingsSql = "
                                SELECT $thingsDB.value, $thingsDB.thing_id, $thingsDB.id
                                FROM $thingsDB
                                WHERE $thingsDB.id = '$related_thing_id'
                                ";              

            $related_things = $wpdb->get_results( "$related_thingsSql" );

            foreach ($related_things as $related_thing) {
                $related_thing_name[] = $related_thing->value;  
                $related_thing_id2[] = $related_thing->id;
                $related_thing_id = $related_thing->thing_id;                   
            }
            while ($related_thing_id != NULL) {
                $related_thingsSql2 = "
                                        SELECT $thingsDB.value, $thingsDB.thing_id, $thingsDB.id
                                        FROM $thingsDB
                                        WHERE $thingsDB.id = '$related_thing_id'
                                    ";                                              
                $related_things = $wpdb->get_results( "$related_thingsSql2" );
                foreach ($related_things as $related_thing) {
                    array_unshift($related_thing_name, $related_thing->value);
                    array_unshift($related_thing_id2, $related_thing->id);
                    $related_thing_id = $related_thing->thing_id;
                    if (empty($related_thing->thing_id)) {
                        $related_thing_id = NULL;   
                    }
                }
            }
            $related_things_length = count($related_thing_name);

            for ($x = 0; $x < $related_things_length; $x++) {
                echo ' > <a href="' . site_url() . '?id=' . $related_thing_id2[$x] . '">' . $related_thing_name[$x] . '</a>';
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38777022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档