Jump to content

ezzcardoso

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About ezzcardoso

  1. ezzcardoso

    foreach aninhado e array select

    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
  2. ezzcardoso

    foreach aninhado e array select

    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
  3. ezzcardoso

    Class Connection com SQL gerando código 10064

    segue código corrido pra quem quiser . <?php class Email { function __construct() { } function get_email($argument){ $argument=addslashes($argument); $argument=trim($argument); $argument=htmlspecialchars($argument); $argument=strtolower($argument); return $this->email = $argument; } } class Location { function get_location(){ $zone= date_default_timezone_set('America/Sao_Paulo'); ini_set($zone, 'UTC'); $location = json_decode(file_get_contents("http://ipinfo.io/json")); $this->ip = $location->ip; $this->hostname = $location->hostname; $this->city = $location->city; $this->region = $location->region; $this->country = $location->country; $this->loc = $location->loc; $this->org = $location->org; $this->data = date("Y-m-d"); $this->hours = date('H:i:s', time()); $this->datatime = date("Y-m-d H:i:s"); } } class Connection { function open($name) { // verifica se existe arquivo de configuração para este banco de dados if (file_exists("{$name}.ini")) { // lê o INI e retorna um array $db = parse_ini_file("{$name}.ini"); } else { // se não existir, lança um erro throw new Exception("Arquivo '$name' não encontrado"); } // lê as informações contidas no arquivo $user = isset($db['user']) ? $db['user'] : NULL; $pass = isset($db['pass']) ? $db['pass'] : NULL; $name = isset($db['name']) ? $db['name'] : NULL; $host = isset($db['host']) ? $db['host'] : NULL; $type = isset($db['type']) ? $db['type'] : NULL; $port = isset($db['port']) ? $db['port'] : NULL; // descobre qual o tipo (driver) de banco de dados a ser utilizado switch ($type) { case 'pgsql': $port = $port ? $port : '5432'; $conn = new PDO("pgsql:dbname={$name}; user={$user}; password={$pass}; host=$host;port={$port}"); break; case 'mysql': $port = $port ? $port : '3306'; $conn = new PDO("mysql:host={$host};port={$port};dbname={$name};charset=utf8", $user, $pass); break; case 'sqlite': $conn = new PDO("sqlite:{$name}"); break; case 'ibase': $conn = new PDO("firebird:dbname={$name}", $user, $pass); break; case 'oci8': $conn = new PDO("oci:dbname={$name}", $user, $pass); break; case 'mssql': $conn = new PDO("mssql:host={$host},1433;dbname={$name}", $user, $pass); break; } // define para que o PDO lance exceções na ocorrência de erros $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $conn; } } class SQL extends Connection { function __construct() { } function sql_add($table_name,$array,$notification){ $fildes = array_keys($array); echo $sql = "INSERT INTO ". $table_name . " (".implode(",",$fildes).")"." VALUES " . "('". implode("','",$array)."')"; $conn = $this->open("Connection"); $add = $conn->query($sql); $conn = NULL; if($add){ echo("Feito registro"); } } } ?> <?php require_once("class.php"); $location = new Location(); $location->get_location(); $email = new Email(); $email->get_email("testeDFGssdssdsdsdsdsHsdsdsdHHHHH"); if(isset($_POST["send"])){ $password_whirlpool=hash('whirlpool',$_POST["password"]); }else{ $password_whirlpool = 123456; } $location_array = array("ip"=>$location->ip, "hostname"=>$location->hostname, "city"=>$location->city, "region"=>$location->region, "country"=>$location->country, "loc"=>$location->loc, "org"=>$location->org, "create_data"=>$location->data, "create_hours"=>$location->hours, "create_datatime"=>$location->datatime); $account_array = array("email"=>$email->email, "password"=>$password_whirlpool, "profile_id"=>uniqid()); $account_create = array_merge($location_array,$account_array); var_dump($account_create); $sql = new SQL(); $sql->sql_add("account",$account_create,"teste"); ?>
  4. Pessoal,estou tendo problemas com o seguinte código class Connection { function open($name) { // verifica se existe arquivo de configuração para este banco de dados if (file_exists("{$name}.ini")) { // lê o INI e retorna um array $db = parse_ini_file("{$name}.ini"); } else { // se não existir, lança um erro throw new Exception("Arquivo '$name' não encontrado"); } // lê as informações contidas no arquivo $user = isset($db['user']) ? $db['user'] : NULL; $pass = isset($db['pass']) ? $db['pass'] : NULL; $name = isset($db['name']) ? $db['name'] : NULL; $host = isset($db['host']) ? $db['host'] : NULL; $type = isset($db['type']) ? $db['type'] : NULL; $port = isset($db['port']) ? $db['port'] : NULL; // descobre qual o tipo (driver) de banco de dados a ser utilizado switch ($type) { case 'pgsql': $port = $port ? $port : '5432'; $conn = new PDO("pgsql:dbname={$name}; user={$user}; password={$pass}; host=$host;port={$port}"); break; case 'mysql': $port = $port ? $port : '3306'; $conn = new PDO("mysql:host={$host};port={$port};dbname={$name}", $user, $pass); break; case 'sqlite': $conn = new PDO("sqlite:{$name}"); break; case 'ibase': $conn = new PDO("firebird:dbname={$name}", $user, $pass); break; case 'oci8': $conn = new PDO("oci:dbname={$name}", $user, $pass); break; case 'mssql': $conn = new PDO("mssql:host={$host},1433;dbname={$name}", $user, $pass); break; } // define para que o PDO lance exceções na ocorrência de erros $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $conn; } } class SQL extends Connection { function __construct() { } function sql_add($table_name,$array,$notification){ $fildes = array_keys($array); $sql = "INSERT INTO".$table_name."(".implode(",",$fildes).")"."VALUES"."(".implode("','",$array).")"; $conn = $this->open("Connection"); $add = $conn->query($sql); $conn->close(); if($add){ echo("Feito registro"); } } } quando vou usar o Script $location_array = array("ip"=>$location->ip, "hostname"=>$location->hostname, "city"=>$location->city, "region"=>$location->region, "country"=>$location->country, "loc"=>$location->loc, "org"=>$location->org, "create_data"=>$location->data, "create_hours"=>$location->hours, "create_datatime"=>$location->datatime); $account_array = array("email"=>$email->email, "password"=>$password_whirlpool, "profile_id"=>uniqid()); $account_create = array_merge($location_array,$account_array); var_dump($account_create); $sql = new SQL(); $sql->sql_add("account",$account_create,"teste"); Gera um erro de código Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.123.246','bace7bf6.virtua.com.br','Boqueirão','Parana','BR','-25.4833,-49.25' at line 1' in C:\wamp64\www\class.php on line 114 ( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.123.246','bace7bf6.virtua.com.br','Boqueirão','Parana','BR','-25.4833,-49.25' at line 1 in C:\wamp64\www\class.php on line 114 Call Stack alguém tem uma luz ?
×

Important Information

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