Estou construindo um pequeno framework baseado em dicionário de dados para .php, em C# já consegui fazer mas, estou meio perdido com as sintaxe. vou postar a idéia global para você compreenderem.
meu banco de dados possui 2 tabelas (DICTABLE, DICFIELD) onde uma mostra as inforamções da tabela e a outra informações sobre o campo.
dictable
CREATE TABLE `dictable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`chave` varchar(60) NOT NULL,
`tablename` varchar(60) NOT NULL,
`tablealias` varchar(60) NOT NULL,
`query` varchar(500) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
dicfield
CREATE TABLE `dicfield` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tablename` varchar(60) NOT NULL,
`fieldname` varchar(60) NOT NULL,
`fieldalias` varchar(50) NOT NULL,
`datatype` varchar(50) NOT NULL,
`islookup` int(11) NOT NULL,
`lktable` varchar(60) NOT NULL,
`lkchave` varchar(60) NOT NULL,
`lkdescricao` varchar(60) NOT NULL,
`lkalias` varchar(60) NOT NULL,
`visible` int(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
Até ai Ok. vamos ao php agora.
<form method="post" action="">
<select name="table" id="table">
<?php foreach(dictable() as $rows): ?>
<option value="<? echo $rows['tablename']?>"><? echo $rows['tablename']?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="post" value="Selecionar">
<?php
$id = $GET_['id']; //pego a id da tabela para manipular posteriormente (UPDATE/DELETE)
$tabela = $_GET['tabela']; //passo nome da tabela como parametro também.
if($_POST['post']) {
$table = $_POST['table'];
$tb="<table style: border = 1px solid black >"; //começa a grid
$tb.="<tr>";
$campos = array(); //nome dos campos da tabela
$datatype = array();
//imprimindo o cabeçalho
$resultAlias = mysql_query("select * from dicfield where tablename = '$table' and visible = 1") or die (mysql_error());
while($rAlias = mysql_fetch_array($resultAlias)) {
$tb.="<td>".$rAlias['fieldalias']."</td>"; //pegando o rotulo que dei para o campo
$campos[] = $rAlias['fieldname']; //jogando o nome real do campo para um array
$datatype[]= $rAlias; //jogando as configurações;
}
$valores = array(); // dados da tabela
$resultData = mysql_query("select * from $table") or die (mysql_error());
while($rData = mysql_fetch_array($resultData)){
$valores[] = $rData;
}
//imprimindo o campo das tabelas
$tb.="<tr>";
foreach($valores as $v) {
foreach($campos as $c) {
$tb.="<td>".$v[$c]."</td>";
}
}
$tb.="</tr>";
$tb.="</table>";
echo $tb;
}
?>
</form>
Até ai Ok também, fuciona certinho, só que preciso pegar em cada loop o tipo de cada campo na DicField, seria algo tipo
foreach($valores as $v) {
foreach($campos as $c) {
foreach($datatype as $type) {
if($type['islookup'] == ') {//aqui criaria um combobox vindo das informações $type['lktable'] $type['lkchave'] $type['lkdescricao']
// e dentro desse mesmo loop pegaria o tipo do campo e montaria as inputs
if($type['datatype'] = 'imagem') { <img src='fotos/< $v[$c]}
}
}
}
}
Pergunta
Ricardo T. do Prado
Prezados,
Estou construindo um pequeno framework baseado em dicionário de dados para .php, em C# já consegui fazer mas, estou meio perdido com as sintaxe. vou postar a idéia global para você compreenderem.
meu banco de dados possui 2 tabelas (DICTABLE, DICFIELD) onde uma mostra as inforamções da tabela e a outra informações sobre o campo.
dictable
dicfield Até ai Ok. vamos ao php agora. Até ai Ok também, fuciona certinho, só que preciso pegar em cada loop o tipo de cada campo na DicField, seria algo tipoMeio sinistro o trem mesmo. alguém se arrisca?
ABs.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.