/** * * @param mixed $paramStartValue * @param HtmlResult $htmlResult * @return mixed */ function recursifOne($paramStartValue, $htmlResult, $paramNameOfBDDOrigin) { $reqTableClassifRoot = "SELECT classification_arborescence_article.id_classification_arborescence_article, " . "ascendant_classification_arborescence_article_categorie_contenu, nom_classification_arborescence_article_categorie_contenu, " . "nom_classification_arborescence_article_categorie,classification_arborescence_article_categorie_contenu.id_classification_arborescence_article_categorie_contenu " . "FROM " . $paramNameOfBDDOrigin . ".classification_arborescence_article, " . $paramNameOfBDDOrigin . ".classification_arborescence_article_categorie_contenu, " . "" . $paramNameOfBDDOrigin . ".classification_arborescence_article_categorie " . "WHERE classification_arborescence_article.id_classification_arborescence_article_categorie_contenu = " . "classification_arborescence_article_categorie_contenu.id_classification_arborescence_article_categorie_contenu " . "AND classification_arborescence_article_categorie.id_classification_arborescence_article_categorie = " . "classification_arborescence_article_categorie_contenu.id_classification_arborescence_article_categorie " . "AND ascendant_classification_arborescence_article_categorie_contenu = {$paramStartValue} " . "ORDER BY classification_arborescence_article.id_classification_arborescence_article "; $resultTableClassifRoot = DatabaseOperation::query($reqTableClassifRoot); $arrayTableClassifRoot = DatabaseOperation::convertSqlResultWithoutKeyToArray($resultTableClassifRoot); $i = 0; if ($arrayTableClassifRoot != NULL) { foreach ($arrayTableClassifRoot as $value) { $id_fils = $value["id_classification_arborescence_article"]; $id_pere = $value["ascendant_classification_arborescence_article_categorie_contenu"]; $id = $value["id_classification_arborescence_article_categorie_contenu"]; $nom_contenu = $value["nom_classification_arborescence_article_categorie_contenu"]; $nom_type = $value["nom_classification_arborescence_article_categorie"]; switch ($nom_type) { //& $htmlResult->getProprietaire() != "Carrefour(Groupe)" case "Propriétaire": $htmlResult->setProprietaire($nom_contenu); $htmlResult->setIdproprietaire($id); break; case "Marque": $htmlResult->setMarque($nom_contenu); $htmlResult->setIdmarque($id); //$htmlResult->setIsProprietaireEndToTrue(); break; case "Activité": $htmlResult->setActivite($nom_contenu); $htmlResult->setIdactivite($id); break; case "Rayon": $htmlResult->setRayon($nom_contenu); $htmlResult->setIdrayon($id); break; case "Environnement": $htmlResult->setEnvironnement($nom_contenu); $htmlResult->setIdenvironnement($id); break; case "Réseau": $htmlResult->setReseau($nom_contenu); $htmlResult->setIdreseau($id); break; case "Saisonalité": $htmlResult->setSaisonalite($nom_contenu); $htmlResult->setIdsaisonalite($id); break; case "Export": $htmlResult->setExport($nom_contenu); $htmlResult->setIdexport($id); break; //.... //.... default: break; } $j = $nom_type . $i++; $return[$j] = array($nom_type => $nom_contenu, "id" . $nom_type => $id_fils); $subReturn = recursifOne($id_fils, $htmlResult, $paramNameOfBDDOrigin); if ($subReturn != NULL) { $return[$j][] = $subReturn; /** * Post-traitement récursif */ switch ($nom_type) { case "Propriétaire": $htmlResult->removeLastProprietaire(); $htmlResult->removeLastIdProprietaire(); break; case "Marque": break; case "Activité": break; case "Rayon": break; case "Environnement": break; case "Réseau": break; case "Saisonalité": break; case "Export": break; default: break; } } else { $htmlResult->setIdArborescence($id_fils); $arrayResult = $htmlResult->getArrayResult(); $arrayResult[$id_fils] = array("IdArborescence" => $htmlResult->getIdArborescence(), "Proprietaire" => $htmlResult->getProprietaire(), "IdProprietaire" => $htmlResult->getIdproprietaire(), "Marque" => $htmlResult->getMarque(), "IdMarque" => $htmlResult->getIdmarque(), "Activite" => $htmlResult->getActivite(), "IdActivite" => $htmlResult->getIdactivite(), "Rayon" => $htmlResult->getRayon(), "IdRayon" => $htmlResult->getIdrayon(), "Environnement" => $htmlResult->getEnvironnement(), "IdEnvironnement" => $htmlResult->getIdenvironnement(), "Reseau" => $htmlResult->getReseau(), "IdReseau" => $htmlResult->getIdreseau(), "Saisonnalite" => $htmlResult->getSaisonalite(), "IdSaisonnalite" => $htmlResult->getIdsaisonalite(), "Export" => $htmlResult->getExport(), "IdExport" => $htmlResult->getIdexport()); $htmlResult->setArrayResult($arrayResult); //$htmlResult->cleanAll(); return $htmlResult; } } return $htmlResult->getArrayResult(); } else { return NULL; } }
/** * Exécute, puis convertie un requête SQL en tableau PHP * La clef du tableau sera générée automatiquement par PHP * @param mixed $paramRequest * @return array Tableau PHP */ public static function convertSqlQueryWithAutomaticKeyToArray($paramRequest) { return DatabaseOperation::convertSqlResultWithoutKeyToArray(DatabaseOperation::query($paramRequest)); }