我目前有一个如下所示的数据库表设置:
| id | thing_id | value"thing_id“与同一表中的唯一ID有关。
我正在尝试创建一个函数(在PHP中),该函数将对MySQL数据库运行查询,将该信息转储到数组中,如果"thing_id“不为空,它将返回并再次运行查询,并将有关信息添加到现有数组中。这将一直持续到"thing_id“为空为止。
我该怎么做呢?顺便说一句,我是在WordPress上设计的。
下面的方法很有效,但我觉得有更好的方法来做到这一点。我如何简化它,使它不占用资源?以下是我所拥有的:
$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>';
}发布于 2016-08-04 21:41:53
我想出了一个可行的办法。我觉得这样做很草率,但很有效。如果有人对如何改进这一点有任何建议,请放心。
$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>';
}https://stackoverflow.com/questions/38777022
复制相似问题