2013-02-02 1 views
1

J'ai une fonction de reccuring que je veux appeler à nouveau avec la syntaxe correcte comment le faire? J'ai dans la base de données si c'est un pays qu'il détient V: et il a le format Col1 Nom du pays; col1 si c'est une ville qu'il n'a pas V: si c'est une région dans le pays il a V: donc cette récursivité doit être jusqu'à ce que nous obtenions les villes qui sont dans un pays dans la base de données Country = V: area1, V: area2 .. .Area1 = City1 ou autre V: fourmi domaine qui, jusqu'à arriver à la ville names..here ce Ive fait jusqu'à présent et je suis closo mais je ne sais pas comment appeler à nouveau la même fonctionavec la recursion php obtenir la ville de la base de données

function recur($d,$rek,&$aeroPole1) 
    { 
if(substr_count($d, 'V:')) 
    { 

    $aeroPole=preg_replace('"V:"','',$d); 

    $aeroPole=explode(",",$aeroPole); 

    foreach($aeroPole as $ap) 
    { 
      $mysqliObj3 = new mysqli('localhost','usr','pass', 'trevo'); 
      $comand6="SELECT * FROM `CC` WHERE name='".$ap."';"; // name='".$RuleD[0]."';"; 
      $QueryObj6 = $mysqliObj3->query($comand6, MYSQLI_USE_RESULT); 

      $dArea=$QueryObj6->fetch_assoc(); 
      $QueryObj6->close(); 


      if($dArea!="") 
      {$rek+=1; 
      $aeroPole1=array_merge($aeroPole1,recur((string)$dArea["airport_codes"],$rek,$aeroPole1)); 

      $fore++; 

     } 

    }//foreach 




} 
} 

edit: fermé un support

+0

Je vous suggère de jeter un oeil à [lien ] [http://www.sitepoint.com/hierarchical-data-database/] - en particulier la traversée d'arbre modifiée à la page 2 de ce tutoriel. Pays-> Région-> Ville-> L'aéroport semble parfait pour un arbre. Pas besoin de récursion! –

+0

Vous ouvrez une nouvelle connexion à la base de données dans la boucle? Cela ne devrait pas être nécessaire, réutilisez la même connexion à la base de données, vous n'en aurez besoin que d'un pour l'ensemble du script – thaJeztah

Répondre

1
 $aeroPole1=array_unique($aeroPole1); 
    return $aeroPole1; 

else 
{ 
    $aeroPole1=explode(",",$d); 


    return $aeroPole1; 
} 

l'autre cas, si elle n'a pas v:

0

vous pouvez essayer cette

Après la fin de la // foreach

$aeroPole1=array_unique($aeroPole1); 
    return $aeroPole1; 

l'unique est de ne pas avoir des doublons, puis vous revenez la fonction

Questions connexes