Jump to content
ezzcardoso

foreach aninhado e array select

Recommended Posts

Pessoal, estou fazendo um script php para selecionar registros no banco de dados... que funciona normalmente.. porém, não estou sabendo como trarar o dados gerados pelo script. Vejamos um exemplo.

<?php
abstract class Eac
{
	private $localhost = "localhost";
	private $root = "root";
	private $password = "";
	private $database = "database";
	private $port = "3306";
	protected function open()
	{
		$conn = new mysqli($this->localhost, $this->root, $this->password, $this->database, $this->port);
		$conn->select_db($this->database);
		$conn->set_charset("utf8");
		if ($conn->connect_error)
		{
			return $conn->connect_error;
		}
		else
		{
			return $conn;
		}
	}
}
class SQL extends Eac
{
	public function insert($table, $array)
	{
		if (is_array($array))
		{
			$conn   = $this->open();
			$fields = array();
			$values = array();
			foreach ($array as $key => $value)
			{
				$fields[] = $key;
				$values[] = "'" . $value = $conn->real_escape_string($value) . "'";
			}
			$fields = implode(",", $fields);
			$values = implode(",", $values);
			$sql    = "INSERT INTO {$table} ({$fields}) VALUES ({$values})";
			if ($conn->query($sql))
			{
				return array(
					"Error" => false,
					"insert_id" => $conn->insert_id,
					"affected_rows" => $conn->affected_rows,
					"info" => $conn->info
				);
			}
			else
			{
				return array(
					"error" => $conn->error
				);
			}
			$conn->close();
		}
		else
		{
			echo ("Não é array");
		}
	}
	public function delete($table, $where)
	{
		$conn = $this->open();
		$sql  = "DELETE FROM {$table} {$where}";
		if ($conn->query($sql))
		{
			return array(
				"affected_rows" => $conn->affected_rows,
				"info" => $conn->info
			);
		}
		else
		{
			return array(
				"error" => $conn->error
			);
		}
		$conn->close();
	}
	public function update($table, $array, $where)
	{
		if (is_array($array))
		{
			$conn = $this->open();
			$sql  = "UPDATE {$table} SET ";
			$sets = array();
			foreach ($array as $column => $value)
			{
				$sets[] = $column . " = '" . $value = $conn->real_escape_string($value) . "'";
			}
			$sql .= implode(',', $sets);
			$sql .= $where;
			if ($conn->query($sql))
			{
				return array(
					"Error" => false,
					"insert_id" => $conn->insert_id,
					"affected_rows" => $conn->affected_rows,
					"info" => $conn->info
				);
			}
			else
			{
				return array(
					"error" => $conn->error
				);
			}
			$conn->close();
		}
	}
	public function select($table, $array, $rules)
	{
		$conn = $this->open();
		switch ($array)
		{
			case '*':
			    $conditions = array();
			    foreach ($rules as $column => $value)
				{
					$conditions[] =" {$column} {$value} ";
				}
				$condition = implode("",$conditions); 
				echo $sql = "SELECT * FROM {$table} {$condition}";
				break;
			case is_array($array):
				$fields = array();
				foreach ($array as $column => $value)
				{
					$fields[] = $value;
				}
				$conditions = array();
				foreach ($rules as $column => $value)
				{
					$conditions[] =" {$column} {$value} ";
				}
				$field = implode(",", $fields);
				$condition = implode("",$conditions);
				echo $sql   = "SELECT {$field} FROM {$table} {$condition}";
				break;
		}
		$select = $conn->query($sql);
		$result = array();
		if ($select->num_rows > 0)
		{
			$stack = array();
			while ($row = $select->fetch_array())
			{
				$stack[] = $row;
				
			}
			return ($stack);
		}
		else
		{
			echo "0 results";
		}
		$conn->close();
	}
}
?>

Aí em cima é meu script normal pra fazer o select e está 100% funcionando.

 

 

Agora o problema é quando eu faço o comando 

 

 

$database =  new SQL();

$cliente = $database->select("cliente","*",$rules = array());

var_dump($cliente);

Mostra o seguinte 

array (size=2)
  0 => 
    array (size=18)
      0 => string '21' (length=2)
      'id' => string '21' (length=2)
      1 => string 'Lula Luiz Inacio Da Silva' (length=25)
      'nome' => string 'Lula Luiz Inacio Da Silva' (length=25)
      2 => string 'CPF' (length=3)
      'tipo' => string 'CPF' (length=3)
      3 => string '12345678912' (length=11)
      'CPF_CNPJ' => string '12345678912' (length=11)
      4 => string '66552852154' (length=11)
      'telefone_celular' => string '66552852154' (length=11)
      5 => string '31454564' (length=8)
      'telefone_comercial' => string '31454564' (length=8)
      6 => string 'lula@povo.com.br' (length=16)
      'email' => string 'lula@povo.com.br' (length=16)
      7 => string '5936d1d7296d0' (length=13)
      'cliente_id' => string '5936d1d7296d0' (length=13)
      8 => string 'lula é um  ex presidente...' (length=28)
      'obs' => string 'lula é um  ex presidente...' (length=28)
  1 => 
    array (size=18)
      0 => string '20' (length=2)
      'id' => string '20' (length=2)
      1 => string 'Dilma Luiz Inacio Da Silva' (length=26)
      'nome' => string 'Dilma Luiz Inacio Da Silva' (length=26)
      2 => string 'CPF' (length=3)
      'tipo' => string 'CPF' (length=3)
      3 => string '12345678912' (length=11)
      'CPF_CNPJ' => string '12345678912' (length=11)
      4 => string '66552852154' (length=11)
      'telefone_celular' => string '66552852154' (length=11)
      5 => string '31454564' (length=8)
      'telefone_comercial' => string '31454564' (length=8)
      6 => string 'lula@povo.com.br' (length=16)
      'email' => string 'lula@povo.com.br' (length=16)
      7 => string '5936d1b61f716' (length=13)
      'cliente_id' => string '5936d1b61f716' (length=13)
      8 => string 'lula é um  ex presidente...' (length=28)
      'obs' => string 'lula é um  ex presidente...' (length=28)

 

agora... como que eu ponho isso em tabela ?????

 

 

eu fiz o seguinte.

 

 

 foreach($cliente as $key => $value){
 	foreach($value as $keys => $values){
 		
 		 echo $values->nome; $values->CPF;
	 	
	 }
	 
 	
 }

 

 

só que não funciona....

 

 

resultado 

 

Notice: Trying to get property of non-object 

 

 

...

 

 

 

Minha questão é.... COMO  posso organizar aquela Array   em uma tabela de marcação HTML 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Web.Developer
      { "message":"encontrado.", "resultados":[ { "transacao":"23424324324", }, { "transacao":"2342342432424", } ] } preciso montar um API assim na onde está transacao tem que vim do banco de dados, depois retorna para as pessoas a array dessa formula
    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      Todas as regras de negócio são implementadas como Stored Procedures.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.