Array
(
)

Problemas com execução de um form e OOP

PHP
Profandreluis
   - 07 mar 2014

Ola boa tarde a todos me chamo Andre Luis e estou enfrentando um problema a semanas com um form em PHP OOP com arquitetura MVC que precisto entregar a um cliente
A estrutura que desenvolvi foi a seguinte:
Criei um arquivo html de form para inserção de dados em uma tabela mysql
Depois criei um arquivo para inserção deste dados no bd do mysql
Acontece que quando executo o arquivo individual do php da o seguinte erro:
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting function (T_FUNCTION) in C:\xampp\htdocs\teste-creative\view\form class.php on line 14
Ja revierei o arquivo de ponta a cabeça refiz o codigo duas vezes corrigi e revi a sintaxe infinitas vezes e sempre caio neste bug com perdão do que vou dizer desgraçado
bom vou colocar aqui o codigo para analise dos senhores e se possivel de me dar uma mão de pelo menos dizer onde esta o erro ou dar uma dica mesmo por que pelo jeito este erro e tolo e se resolvido so capaz ate de pagar uma pizza para quem me ajudar
Segue o codigo:
<?php
include "config.php";
class Form{
public $Nome;
public $Email;
public $Cidade;
public $Zip;
public $Estado;
public $Pais;
public $Usa;
public $Consulta;
class public Nome {
$Nome = new Nome;
Function Nome {
$Consulta = mysqlquery('INSERT INTO table name form','Nome');
if ($Consulta) {
Echo "Nome enviado com sucesso";
} else {
Echo "recadastre novamente o dado";
}
$Nome->$this->Nome;
}
}
class Email {
$Email = new Email;
Function Email {
$Consulta_ema = mysqlquery ('INSERT INTO table email form','Email' );
if($Consulta_ema) {
echo "Nome cadastrado";
} else {
echo "Insira o dado correto";
}
Email->$this->Email;
}
}
class Cidade {
$Cidade = new Cidade;
Function Cidade {
$Consult_cid = mysqlquery('INSERT INTO table cidade form', 'Email');
if($Consult_cid) {
echo "Cidade inserida";
} else {
echo "Favor inserir novamente o dado";
}
}
}
class Email {
$Email = new Email;
Function Email {
$Consulta_ema = mysqlquery ('INSERT INTO table email form','Email' );
if($Consulta_ema) {
echo "Nome cadastrado";
} else {
echo "Insira o dado correto";
}
Email->$this->Email;
}
}
class Cidade {
$Cidade = new Cidade;
Function Cidade {
$Consult_cid = mysqlquery('INSERT INTO table cidade form', 'Email');
if($Consult_cid) {
echo "Cidade inserida";
} else {
echo "Favor inserir novamente o dado";
}
}
}

class Zip {
$zip = new Zip;
$Usa = EUA;
Function ZIP {
$Consulta_zip = mysqlquery ('INSERT INTO table pais form','Email' );
if($Consulta_zip) {
echo "Zip cadastrado";
} else {
echo "Insira o zip correto";
}
}
Function USA {
while ($zip = $Usa) {
$Consult_usa = mysqlquery ('SELECT FROM table pais form','Pais');
if ($Consult_usa = $usa) {
Echo "<input name = usa value = 5></input>;"
} else {
echo "Coloque o valor correto";
}
}
Zip->$this->ZIP;
Zip->$this->USA;
}
class Estado {
$Estado = new Estado;
Function Estado {
$Consulta_est = mysqlquery ('SELECT FROM table estados form','Estado' );
$Usa = EUA;
if($Consulta_est) {
echo "Estado cadastrado";
} else {
echo "Insira o dado corretamente";
}
}

Function usa_est(){
if ($estado = $Usa) {
$estado_usa = mysqlquery ('INSERT INTO table estado form' 'estado');
} else {
echo "<input text name = estado desable></input>"
}
}
Estado->$this->Estado;
Estado->$this->usa_est;
}
class Pais{
$Pais = new Pais;
Function Pais {
$Consulta_pais = mysqlquery ('SELECT FROM table pais form','Pais' );
if($Consulta_pais) {
echo "<list></list>";
} else {
echo "Pais Não encontrado";
}
}
Pais->$this->Pais;
}
}
No aguardo de retorno

Milléo
   - 07 mar 2014

Olá Andre Luis,

analisando a classe form que você criou, eu percebi que na verdade você está tentando criar uma classe dentro da outra. Como podemos ver que dentro da classe Form, você criou as classes Nome, Email, Cidade, dentre outras. Mas na verdade todas estas classes que você criou podem ser na verdade atributos da classe Form. E a classe pode ter um método "insert" que pode fazer a inserção de todos os atributos na tabela do banco de dados, algo mais ou menos assim:

#Código

<?php
include "config.php";
class Form{
	
	# Atributos do form
	
	public $nome;
	public $email;
	public $cidade;
	public $estado;
	public $zip;
	public $pais;
	public $usa;
	
	# Função para a inserção de dados
	public function inserir_dados($tabela = ""){
		if(!empty($tabela)){
			
			# Variável String para criação de uma query SQL
			$query_sql = "INSERT INTO ".$tabela." SET ";
			$query_sql .= "nome = '".$this->nome."' ";
			$query_sql .= "email = '".$this->email."' ";
			$query_sql .= "cidade = '".$this->cidade."' ";
			$query_sql .= "zip = '".$this->zip."' ";
			$query_sql .= "estado = '".$this->estado."' ";
			$query_sql .= "pais = '".$this->pais."' ";
			$query_sql .= "usa = '".$this->usa."';";
			
			# Executando a query e caso dê algum erro ele irá retornar o erro do banco de dados
			mysql_query($query_sql) or die(mysql_error());
		}
	}
}

# A seguir a utilização desta classe
# Vamos instanciar o objeto

$meu_form = new Form();

# E agora atribuir valor a cada atributo do objeto
$meu_form->nome = "Nome";
$meu_form->email = "email@provedor.com";
$meu_form->cidade = "São Paulo";
$meu_form->estado = "SP";
$meu_form->zip = "12345-000";
$meu_form->pais = "Brasil";
$meu_form->usa = "";

# E por fim inserir os dados na tabela desejada
$meu_form->inserir_dados("nome_da_tabela");