나는 현재 데이터베이스 테이블 설정과 같이이 있습니다PHP 및 MySQL을 - 루프 쿼리 값이 null가 아닌 경우는
| id | thing_id | value
은 "thing_id는"동일한 테이블 내에서 고유 한 ID에 관한 것이다.
MySQL 데이터베이스에 대해 쿼리를 실행하고 해당 정보를 배열로 덤프하는 함수 (PHP에서)를 만들려고하는데 "thing_id"가 NOT NULL이면 루프백하고 다시 쿼리를 실행합니다. 정보를 기존 어레이에 추가하십시오. "thing_id"가 NULL이 될 때까지 계속됩니다.
어떻게해야합니까? Btw, 나는 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>';
}
작성 코드는 지금까지 시도한 것을 보여줍니다. –
먼저, PHP 및/또는 SQL을 살펴 보겠습니다. 그것이 태그가 말하는 것입니다. –
** 경고 ** : 쿼리에 사용자 데이터를 직접 넣어서 위험한 [SQL 주입 버그] (http://bobby-tables.com/)를 만들었습니다. ** 절대로 이것을하지 마십시오. 대신 WordPress [prepared statements feature] (http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks)를 사용하여 모든 데이터 매개 변수를 올바르게 이스케이프 처리하십시오. – tadman