la función es la siguiente
Código PHP:
function get_mlm_listing() {
global $wpdb;
global $current_user;
if (isset($_GET["current_user_id"]) && !empty($_GET["current_user_id"]))
{
$current_user_id = $_GET["current_user_id"];
}
else
{
$current_user_id = $current_user->ID;
}
$users = $wpdb->get_results($wpdb->prepare("SELECT * FROM mlm WHERE parent_user_id = %d", $current_user_id));
if ($users == null && $current_user->ID == $current_user_id)
{
echo "<br />";
echo "No tienes miembros en tu red";
//echo "You don't have any members below you yet, here is your referral link: \r
/*<a href=" . get_bloginfo("url"). "/" . $current_user->ID . ">" . get_bloginfo("url") . '' . "/" . $current_user->ID . "</a><br />";
*/
}
else
{
foreach ($users as $obj)
{
$user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM mlm WHERE parent_user_id = %d", $obj->user_id));
if (is_plugin_active("buddypress/bp-loader.php"))
{
$user_email = $wpdb->get_var($wpdb->prepare("SELECT user_email FROM " . $wpdb->prefix . "users WHERE ID = %d", $obj->user_id));
$user_nicename = $wpdb->get_var($wpdb->prepare("SELECT user_nicename FROM " . $wpdb->prefix . "users WHERE ID = %d", $obj->user_id));
$user_profile = trim(str_replace(" ", "", strtolower($obj->login_id)));
$url = site_url();
$wpmlm_contact = "<a href='" . $url . "/members/" . $user_nicename . "' target='_blank'>[Contacar con el usuario]</a><br> --> <b>".$user_email."</b>";
}
else
{
$user_email = $wpdb->get_var($wpdb->prepare("SELECT user_email FROM " . $wpdb->prefix . "users WHERE ID = %d", $obj->user_id));
$wpmlm_contact = '' . "<a href='mailto:" . $user_email . "'>[Contact User]</a>";
}
echo "<div style='margin-left:30px; border:solid thin #ccc'><a href='javascript:;' class='L" . $current_user_id . "' rel='" . $obj->user_id . "'>" . $obj->login_id . " (" . $user_count . ")</a> " . $wpmlm_contact . "</div>";
continue;
}
}
exit();
}
mi pregunta es existe la forma que puede hacer que me recorra la base de datos indefinidamente y me dibuje todos los registros
lo que pasa es que el campo parent_user_id cadavez es diferente, me explico es una tabla de referidos y tiene infinidad de niveles entonce lo que hace ahora es, mira cuantos referidos tengo en mi primer nivel... despues cuando me los lista le pido cuantos referidos tiene mi primer referido y así hasta el final
aqui dejo un esquema
Padre
- Hijo 1
-hijo 1.1
-hijo 1.2
- Hijo 2
-hijo 2.1
-Hijo 3
-hijo 3.1
-hijo 3.2
*hijo 3.2.1
-hijo 3.3
espero haberme explicado