本文整理汇总了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
//.........这里部分代码省略.........
示例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;
}
示例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
}
示例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 = '';
示例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--;
}