Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

falamansa

[Resolvido] Preencher DataGrid com dados do php e mysql

Recommended Posts

Estarei mostrando como preencher um datagrid com dados vindos de uma pagina php com acesso ao mysql no flash.

 

Bom primeiramente inicie um novo documento no flash com as3.

 

Adicione um novo componente datagrid (Ctrl + F7).

o nomeie como sem as aspas "exibe_data", e um campo de texto com nome "txt_txt".

 

Depois click no primeiro frame e pressione F9 para entrar na janela de action e cole o código que esta abaixo:

 

System.useCodePage=true;

import fl.data.DataProvider;
import fl.events.DataGridEvent;
import fl.events.ListEvent;
var aRoster:Array = new Array();
var aRoster2:Array = new Array();
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("BUSCAR2.php?idgg='0'"); //coloque no lugar de BUSCAR2.php o nome de seu formulário php no caso o meu foi BUSCAR2.php
var variables:URLVariables = new URLVariables();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
req.method = URLRequestMethod.POST;
txt_txt.tabIndex = 0;

txt_txt.addEventListener(KeyboardEvent.KEY_UP, sendForm);
function sendForm(e:KeyboardEvent):void{
       variables.nome = txt_txt.text; //coloco dentrode variables os campos txt_txt.
       req.data = variables; //Adiciono ao data do URLRequest as variáveis dos campos
       loader.load(req); //Envio para o php
       loader.addEventListener(Event.COMPLETE, receiveLoad); //Ao termino da leitura do php carrego a função de recebimento de variável.
}
function receiveLoad(evt:Event):void {
	if(evt.target.data.TXTP == 0){
		
	}else{//.idp+" "+evt.target.data.nomep+" "+evt.target.data.fonep+" "+evt.target.data.setorp+" "+evt.target.data.cidadep;
	   aRoster2=evt.target.data.idp.split(",");  //converto os dados do php para a array no flash
	  var numcont:Number=0;
	  for (var a = 0; a < evt.target.data.TXTP; a++)
{
// Passando valores para o DataGrid
      aRoster.push({ID:aRoster2[numcont++], NOME:aRoster2[numcont++], TELEFONE:aRoster2[numcont++], SETOR:aRoster2[numcont++], CIDADE:aRoster2[numcont++]});
}
	  //aRoster.push({ID:aRoster2[0]});
	  //aRoster=[{ID:evt.target.data.idp, NOME:evt.target.data.nomep, TELEFONE:evt.target.data.fonep, SETOR:evt.target.data.setorp, CIDADE:evt.target.data.cidadep}];
	  exibe_data.dataProvider = new DataProvider(aRoster);
      aRoster.splice(0,aRoster.length);
	}
}


/////////////////////////////////////////////////////////////

exibe_data.columns = ["ID", "NOME", "TELEFONE", "SETOR", "CIDADE"]; //define a quantidade de coluna e seus nomes do datagrid
exibe_data.columns[0].width = 30; //determina o tamanho de cada coluna
exibe_data.columns[1].width = 100; 
exibe_data.columns[2].width = 55; 
exibe_data.columns[3].width = 75; 
exibe_data.columns[4].width = 65; 
exibe_data.addEventListener(ListEvent.ITEM_CLICK, clickHandler, false, 100); //Identifica um click nos campos do datagrid

 	function clickHandler(e:ListEvent):void 
 	{ 	
		trace("You are above row: " + e.rowIndex + " column: " + e.columnIndex + " item:" + exibe_data.getItemAt(Number(e.rowIndex)).ID);
 	}
	

agora Vamos a pagina php que no caso nosso estou usando com nome de BUSCAR2.php

<?php
$client = $_POST["nome"];//recebo a variável nome do flash
$resultado=0;//variável de controle
utf8_decode($client); //codifico a variável nome para utf8
$con = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());//cria conexão com mysql no meu caso estou usando localmente
mysql_select_db("teste", $con);//selecionei o banco chamado teste
$result = mysql_query("SELECT * FROM clientes WHERE nome LIKE '$client%' LIMIT 0 , 10");
$quant=mysql_num_rows($result);
echo "TXTP=".$quant; //defino o tanto de registros encontrados no banco para o flahs cria um loop pra preencher o datagrid
echo "&idp=";//imprimo os dados separados por vírgula para serem tratados com split no flash
while($row = mysql_fetch_array($result))
  {
	  $id = $row["id"];
	  $nome = str_replace(",","-",$row["nome"]);
	  $fone = str_replace(",","-",$row["fone"]);
	  $setor = str_replace(",","-",$row["setor"]);
	  $cidade = str_replace(",","-",$row["cidade"]);
	  echo $id.",".$nome.",".$fone.",".$setor.",".$cidade.",";
	  /*$resultado ="idp=".$row["id"];
	  $resultado .="&nomep=".$row["nome"];
	  $resultado .="&fonep=".$row["fone"];
	  $resultado .="&setorp=".$row["setor"];
	  $resultado .="&cidadep=".$row["cidade"];*/
}
mysql_free_result($result);//limpo a consulta da memória 
mysql_close($con);//fecho a connexão com o banco
//echo $resultado;
?>

Agora vamos para o código sql.

 

crie um novo banco que no nosso caso aqui seria o teste e acrescente a SQL abaixo:

 

CREATE TABLE IF NOT EXISTS `clientes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(100) NOT NULL,
  `sobre_nome` varchar(30) NOT NULL,
  `firma` varchar(30) NOT NULL,
  `contador` varchar(50) NOT NULL,
  `fonecont` varchar(20) NOT NULL,
  `fone` varchar(15) NOT NULL,
  `endereco` varchar(30) NOT NULL,
  `setor` varchar(20) NOT NULL,
  `cidade` varchar(20) NOT NULL,
  `cnpj` varchar(30) NOT NULL,
  `inscricao_estadual` varchar(30) NOT NULL,
  `inscricao_municipal` varchar(30) NOT NULL,
  `cep` varchar(20) NOT NULL,
  `uf` varchar(2) NOT NULL,
  `servico` int(2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=781 ;

Insira alguns dados a essa tabela, e faça um teste. dentro do localhost

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.