本文整理匯總了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--;
}