当前位置: 首页>>代码示例>>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;未经允许,请勿转载。