當前位置: 首頁>>代碼示例>>PHP>>正文


PHP DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray方法代碼示例

本文整理匯總了PHP中DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray方法的典型用法代碼示例。如果您正苦於以下問題:PHP DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray方法的具體用法?PHP DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray怎麽用?PHP DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在DatabaseOperation的用法示例。


在下文中一共展示了DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: rechercheDeJointure

 /**
  * Algo de recherche de jointures pour 1 champ
  * Dictionnaire des variables :
  * $table_rech = nom de la table du champ que l'utilisateur a selectionner.
  * $nbligne_jointure = variable qui contiendra le nombre de jointure contenue dans le fichier
  * @param type $champ_sel
  * @param type $url_page_depart
  * @param type $module
  * @param type $table_champ_retour
  * @param type $table_tous_champs_rech
  * @return string
  */
 public static function rechercheDeJointure($champ_sel, $url_page_depart, $module, $table_champ_retour, $table_tous_champs_rech)
 {
     // Dictionnaire des variables
     $result = array();
     // Fichier qui contient les differentes liaisons entre les tables
     //d'un meme module
     $file = '../' . $module . '/sql.map';
     // Recherche du nom de la table du champ que l'utilisateur a selectionné
     $nom_table = "table_moteur_de_recherche";
     $nom = "nom_champ_moteur_de_recherche";
     $table_req = " SELECT {$nom_table} FROM {$table_tous_champs_rech}\n                        WHERE {$nom}='{$champ_sel}'";
     $array_enr = DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray($table_req);
     // nom de la table
     foreach ($array_enr as $table_enr) {
         $table_rech = $table_enr[0];
     }
     /*         * *****************************************************************************
               Transformation du fichier $file en 1 tableau pour les jointures
     
               $tab_jointure[][] = Tableau a 2 dimensions qui va contenir  :
              * dans sa premiere colonne
               - soit 0 (si la jointure n'a pas été utilisée)
               - soit 1 (si elle a deja ete utilisée)
              * dans sa deuxieme colonne : la jointure en elle meme.
              * ****************************************************************************** */
     unset($tab_jointure);
     //on vide le tableau
     if (file_exists("{$file}")) {
         // Test de l'existance du fichier
         // Ouverture du fichier en lecture
         $fp = fopen("{$file}", "r");
         $nbligne_jointure = 0;
         // le nombre de jointure
         if ($fp) {
             // Si le fichier est ouvert
             $toute_ligne = fgets($fp, 4096);
             // lecture d'une ligne
             while (!feof($fp)) {
                 // tant qu'on n'est pas a la fin du fichier
                 if ($toute_ligne[0] != '#') {
                     // on saute les lignes en commentaires
                     $tab_jointure[][1] = $toute_ligne;
                     // on rempli le tableau
                     $nbligne_jointure++;
                 }
                 $toute_ligne = fgets($fp, 4096);
                 // lecture d'une ligne
             }
         } else {
             $titre = 'ERREUR';
             $message = 'Probleme d\'ouverture du fichier ';
             $message .= $file;
             Lib::showMessage($titre, $message, $redirection);
             exit;
         }
     } else {
         $titre = 'ERREUR';
         $message = 'Le fichier ';
         $message .= $file;
         $message .= " n'existe pas ! ";
         Lib::showMessage($titre, $message, $redirection);
         exit;
     }
     // initialisation du marquage à 0
     for ($j = 0; $j < $nbligne_jointure; $j++) {
         $tab_jointure[$j][0] = 0;
     }
     /*         * *****************************************************************************
               Jointures et chemin forcé
               Pour pouvoir determiner toutes les jointures entre la table qui contient la valeur
               que l'on recherche et la table qui contient le resultat que l'on attend
               On utilise un algorithme de parcours en profondeur
               Explication :
               point de depart = la table du champ que l'ulisateur vient de selectionner
               pour faire sa recherche.
               point d'arrivée = $table_champ_retour
     
               En partant du point de départ, il peut y avoir plusieurs chemins pour
               arriver au point d'arrivée.
     
               Les differentes étapes du chemin (les jointures) seront séparées
               par des AND,
               Les differents chemins seront séparés par des OR
     
               Le principe de parcours en profondeur :
               on explore un chemin jusqu'au bout, si la table de la
               dernière jointure (étape) est le point d'arrivée
               on l'enregistre dans le tableau $chemin
//.........這裏部分代碼省略.........
開發者ID:SalokineTerata,項目名稱:intranet,代碼行數:101,代碼來源:MoteurDeRecherche.php

示例2: getArrayRecordsFromOneDataField

 /**
  * Retourne un tableau de DatabaseRecord résultat de la recherche
  * @param string $paramTableName nom de la table
  * @param string $paramFieldName champs utilisé comme critère de recherche
  * @param mixed $paramFieldValue valeur à rechercher
  * @return array Tableau de DatabaseRecordset
  */
 public static function getArrayRecordsFromOneDataField($paramTableName, $paramFieldName, $paramFieldValue)
 {
     $keyName = DatabaseDescription::getTableKeyName($paramTableName);
     $whereClause = self::convertArrayToSqlClauseWhere($paramTableName, array($paramFieldName => $paramFieldValue));
     $result = DatabaseOperation::doSqlSelect($keyName, $paramTableName, $whereClause);
     $return = DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray($result);
     return $return;
 }
開發者ID:SalokineTerata,項目名稱:intranet,代碼行數:15,代碼來源:DatabaseOperation.php

示例3: buildSqlDescription

 public static function buildSqlDescription()
 {
     /**
      * Récupération des caractéristiques SQL de chaque champs de chaque table
      */
     ini_set('memory_limit', '-1');
     $array = DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray('SHOW TABLES');
     foreach ($array as $rowsTables) {
         $tableName = $rowsTables[0];
         $tableDescription = DatabaseOperation::convertSqlStatementWithoutKeyToArray('DESC ' . DatabaseOperation::convertNameToSqlClause($tableName));
         /**
          * Enregistrement des caractéristiques SQL de chaque champs
          * Parcours de chaque champs de la table en cours d'analyse.
          */
         foreach ($tableDescription as $rowsField) {
             if ($rowsField['Key'] == 'PRI') {
                 /**
                  * Enregistrement du l'information de la clef dans le résultat final:
                  */
                 self::$resultInSession[$tableName][self::ARRAY_NAME_KEY] = $rowsField['Field'];
             }
             /**
              * Enregistrement du champs dans le résultat final: 
              */
             self::$resultInSession[$tableName][self::ARRAY_NAME_FIELDS][$rowsField['Field']][self::ARRAY_NAME_SQL] = $rowsField;
             /**
              * Est-ce que ce champ est une clef ?
              * @todo Gestion de tables multi-clefs non implémentée
              */
         }
         //Fin WHILE de parcours des champs
     }
     //Fin WHILE de parcours des tables
 }
開發者ID:SalokineTerata,項目名稱:intranet,代碼行數:34,代碼來源:DatabaseDescription.php

示例4: recuperation_donnees_recherche


//.........這裏部分代碼省略.........
    }
    // Initialisation des compteurs pour les lignes et pour les colonnes
    $cpt_col = 0;
    // compteur sur les colonnes
    $cpt_ligne = 0;
    // compteur sur les lignes
    while ($cpt_ligne < $nbligne) {
        // parcours des lignes
        // Calcul du nombre de colones de la ligne courante
        $nbcol = count($champ_recherche[$cpt_ligne]);
        if ($cpt_ligne == $nb_ligne_courant) {
            $nbcol = count($champ_recherche[$cpt_ligne]) + $ajout_col;
        }
        if (!isset($nbcol) || $nbcol == '') {
            $nbcol = 1;
        }
        while ($cpt_col < $nbcol) {
            // parcours des colonnes
            $tableau_affichage[$cpt_ligne][$cpt_col] = "";
            // Nom du formulaire courant
            $name_form = 'recherche_' . $cpt_ligne . '_' . $cpt_col;
            // creation du formulaire
            $tableau_affichage[$cpt_ligne][$cpt_col] .= "<form name={$name_form}  method=post action=../lib/action.php>";
            // nom de la premiere liste deroulante
            $name_champ_recherche = "selection_champ_recherche_" . $cpt_ligne . '_' . $cpt_col;
            $liste_champ = "<select name={$name_champ_recherche} onChange=lien_selection('{$name_form}','{$name_champ_recherche}')>";
            // creation de la liste déroulante
            $liste_champ = "<select name={$name_champ_recherche} onChange=lien_selection('{$name_form}','{$name_champ_recherche}','{$name_operateur_recherche}')>";
            // nom de la table ou sont repertorié les champs possibles de recherches
            $t = $module_table;
            $t .= '_moteur_de_recherche';
            // pour les champs avec priorité haute
            $desc = " SELECT *\n                               FROM {$t}\n                               WHERE priorite_moteur_de_recherche = 1\n                               order by nom_champ_usuel_moteur_de_recherche ";
            $resultat = DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray($desc) or die('Erreur SQL !' . $desc . '<br>' . mysql_error());
            if (!strstr($url_page_depart, '?')) {
                $lien = $url . "?url_page_depart={$url_page_depart}&nb_limite_resultat={$nb_limite_resultat}&champ_recherche={$champ_recherche_aux}&operateur_recherche={$operateur_recherche_aux}&texte_recherche={$texte_recherche_aux}&nbligne={$nbligne}&nbcol={$nbcol}&nb_col_courant={$cpt_col}&nb_ligne_courant={$cpt_ligne}&champ_courant=";
            } else {
                $lien = $url . "&url_page_depart={$url_page_depart}&nb_limite_resultat={$nb_limite_resultat}&champ_recherche={$champ_recherche_aux}&operateur_recherche={$operateur_recherche_aux}&texte_recherche={$texte_recherche_aux}&nbligne={$nbligne}&nbcol={$nbcol}&nb_col_courant={$cpt_col}&nb_ligne_courant={$cpt_ligne}&champ_courant=";
            }
            // remplissage de la première liste déroulante
            $liste_champ .= "<option value" . $lien;
            $liste_champ .= "=>Selectionnez </option>";
            foreach ($resultat as $enr) {
                if ($champ_recherche[$cpt_ligne][$cpt_col] != '') {
                    // Si la categorie est déja selectionnée
                    if ($enr[0] == $champ_recherche[$cpt_ligne][$cpt_col]) {
                        $selected = 'selected';
                    } else {
                        $selected = '';
                    }
                }
                $liste_champ .= "<option value=" . $lien . $enr[0] . " " . $selected;
                $liste_champ .= ">{$enr['3']}</option>";
            }
            $liste_champ .= "<option value=" . $lien;
            $liste_champ .= ">==================================</option>";
            // pour les autres champs
            $desc = " SELECT *\n                               FROM {$t}\n                               WHERE priorite_moteur_de_recherche = 0\n                               order by nom_champ_usuel_moteur_de_recherche";
            $resultat = DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray($desc) or die('Erreur SQL !' . $desc . '<br>' . mysql_error());
            foreach ($resultat as $enr) {
                if ($champ_recherche[$cpt_ligne][$cpt_col] != '') {
                    // Si la categorie est déja selectionnée
                    if ($enr[0] == $champ_recherche[$cpt_ligne][$cpt_col]) {
                        $selected = 'selected';
                    } else {
                        $selected = '';
開發者ID:SalokineTerata,項目名稱:intranet,代碼行數:67,代碼來源:functions.php

示例5: foreach

     // where : requete directe
     $requete = "SELECT DISTINCT {$champ_retour} FROM ";
     $requete .= $table_requete;
     $requete .= " WHERE ";
     $requete .= $where;
     // Ajout de la jointure si existante
     if ($boucle == 1) {
         //if($jointure_fin)
         $requete .= ' AND ';
         $requete .= $jointure_fin . " 1";
         $boucle = 0;
         //$pile=0;
     }
     //echo $requete;
     // execution de la requete
     $result = DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray($requete);
     // recuperation  des resultats
     foreach ($result as $enr) {
         $tab_resultat[] = $enr[0];
     }
     $depile = array_pop($pile);
     // on depile le dernier element
     // remise a zero du marquage
     $nul = 0;
     unset($jointure1);
     while ($join[$y][$nul][1] != '') {
         $join[$y][$nul][0] = 0;
         $nul++;
     }
     $y--;
 }
開發者ID:SalokineTerata,項目名稱:intranet,代碼行數:31,代碼來源:action.php


注:本文中的DatabaseOperation::convertSqlStatementKeyAndOneFieldToArray方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。