<?php
/*******************************************************************************
// =============================================================================
// Affichage d'un enregistrement.
// Tous le champs sont en sortie. Aucun champ n'est en saisie
// =============================================================================
// -----------------------------------------------------------------------------
// affichage du formulaire "Liste de choix de la table"
// -----------------------------------------------------------------------------
// recherche des tables de la base
// et affichage d'une liste à choix multiple pour le choix de la table à modifier.
// affichage automatique de la page $goto_page lorsqu'il y a un changement de valeur de ce champ.
//@	in	: $tableName ; nom de la table si déjà sélectionnée avant
//@ in	: $varList ; liste des valeurs locales : connexion à la base, ...
//@ out	:	aucune sortie, affichage direct
//
*******************************************************************************/
// =============================================================================
// récup de la liste des champs clés (non utilisé)
// =============================================================================
/*
function getPrimaryKey($tableName, $var_list) {
	$fieldList=getFieldList($tableName, $var_list);
	for ($i=0;$i<sizeof($fieldList);$i++) {
		if ($filedList[$i][5]=='PRI') $keyList[$j]=$filedList[$i][0];
		return (array) $keyList;
	}
}
*/
// =============================================================================
// récup de la description d'un enreg dans une table (pour les champs référencés)
// =============================================================================
function getRefValue($refTableName, $refFieldName, $value, $var_list) {
  			include ('library/dbDicTable.inc');   // description des tables
				include	('library/dbReferences.inc'); // description des champs référencés
  			include ('library/dbDicFields.inc');   // description des champs, valeurs par défaut
						if (is_array($dicTable[$refTableName]['descField'])) 
							$selectedFields=implode(", ", $dicTable[$refTableName]['descField']);
						else
							$selectedFields=$dicTable[$refTableName]['descField'];
						$refSql="select ".$selectedFields;
						$refSql.=" from ".$refTableName;
						$refSql.=" where ".$refFieldName."='".$value."' ;";
						//echo $refSql;
						$refSql_Id=ouvrirRequete($refSql, $var_list['connectId']);
						//echo mysql_errno().mysql_error();
						$refRecord = lireTable($refSql_Id);
						$refRecordAsString=implode(" ", $refRecord);
						return $refRecordAsString;
						//echo "<br>dbg3 : ";foreach ($refRecord as $key =>$value) echo "<br>refRecord($key)=$value" ;
}

//==============================================================================
// Main
//==============================================================================
				
				// début de la liste des champs de l'enreg
				echo "<table align=center>";
				echo "<th>Champ<th>Description<th>Valeur<th>R&eacute;f&eacute;rence";
				// Note, la colonne référence contient la valeur descriptive de l'enregistrement de la table référencée par une clé étrangère.

				// recup la liste des champs de la table
				$fieldList=DB_getFieldList($tableName, $connexion);
				// PAS BESOIN $keyFieldNames=getPrimaryKey($fieldList);
				//$keyList=getPrimaryKey($tableName, $varlist)

				// recup la liste des valeurs de l'enreg !!! CLE PRIMAIRE + UN SEUL CHAMP
				$sql="";
				$sql="select * from ".$tableName;
				$sql.=" where ";
				/*
				for ($i=0;$i<sizeof($keyFieldNames);$i++)
						$sql.=$keyFieldNames[$i]." = '".$KeyFieldValues[$i];
				*/
				for ($i=0;$i<sizeof($keyFields);$i++) {
						if ($i>0)
							$sql.=" and ";
						$sql.=$keyFields[$i];
				}
				$sql.=" ;";
//dbg				echo "<br>sql=$sql";
				$sql_Id=DB_ouvrirRequete($sql, $connexion);
				$record = DB_lireLigneT($sql_Id);
				//$record = mysql_db_query($varList['login_db'], $sql, $varList['connectId']);
				//$sqlQuery = "Select * from ".$varList['tableName']." where ";
//dbg				echo mysql_errno().mysql_error();
//dbg				echo "<br>result=".$record;
				
				// afficher la liste des champs de l'enreg
				$i=0;
				$rowType=1;
				
				for ($i=0;$i<sizeof($fieldList);$i++) {
					// créer les champs affichés
					// récup de la liste des caractéristiques du champ
					$field=$fieldList[$i];
					
					// nom du champ + desc
					$fieldName=$field['name'];
					// description du champ
					$fieldDesc=$field['desc'];
					
					// valeur descriptive du champ si c'est une clé étrangère
					$reference="";
					if (isset($field['refField'])) {
						$reference=getRefValue($field['refField'][0], $field['refField'][1], $record[$i], $varList);
					}
					
					// définir la couleur de fond de la ligne
					if ($rowType == 0) $rowType=1;
					else $rowType = 0;

					// afficher la ligne
					echo "<tr class=tabRow".$rowType.">";
					echo "<td>$fieldName";
					echo "<td>$fieldDesc";
					// MODIF A FAIRE : faire apparaître les sauts de ligne s'il y en a (expression régulière qui ajoute des <BR> ou implode/explode ?)
					echo "<td>$record[$i]";
					echo "<td>$reference";
					
				}
				
				// fin de la liste des champs
				echo "</table>";
?>

