white_devil
14-03-2008, 20:53
boas ppl,
estou a desenvolver um backoffice que depois vai ser usado para gestao de todos os recursos existentes numa eskola. O backoffice esta praticamente feito. mas este esta a dar uns erros esquesitos com mensagens de erro que predefeni. por kausa disso nao posso avançar kom o meu projecto e estou escrevendo na esperança que alguem me possa ajudar
disponiblizo o codigo fonte php e a base de dados mysql (com a respectiva pass e login) num arquivo zip.
http://www.filefactory.com/file/b79859/
Agradeço desde ja a atençao e espero mesmo k alguem me ajude...
Abraço
slack_guy
14-03-2008, 21:06
dar uns erros esquesitos com mensagens de erro que predefeni.
Se as mensagens de erro foram criadas por ti, deves saber o que significam.
white_devil
14-03-2008, 23:32
sim sei... mas tipo: PROBLEMA A INSERIR DADOS NA TABELA, mas eu sei e professores meus dizem k o kodigo esta bem escrito e nao sabem pk faz akilo e é ai k preciso de ajuda...
Boas,
A primeira coisa que tens que fazer é melhorar o teu debug.
Altera isto
if (mysql_query($sql))
{
$this->message = "Apagado com sucesso!";
}
else
{
$this->message = "Problema ao apagar registo!";
}
}para:
if (mysql_query($sql))
{
$this->message = "Apagado com sucesso!";
}
else
{
$this->message = "Problema ao apagar registo! ERRO: ".mysql_error();
}
}
Já vais ter uma informação mais precisa do erro.
Altera em todos os if de queries
Saudações
white_devil
20-04-2008, 20:10
Boas,
Fiz o que o mascker (http://www.techzonept.com/member.php?u=15936) sugeriu e de facto o backoffice diz que existe erro de origem sql.
Por exemplo:
- Na tabela clientes quando tento inserir um novo registo da agora o seguinte erro: Problema a tentar inserir o novo registo! Erro: You have an error in your SQL syntax near \'; \' at line 8
Resumindo: erro sql na linha 8 ou 7 com o caracter \ ---> pelo que acho, tem algo a haver com os comentarios que tenho junto com o codigo... alguem me pode dar mais uma ajudinha? apenas queria o backoffice a funcionar 5*, pois como criei o backoffice do zero, agora tou a ficar um pouco farto por causa destes erros misseraveis... :S
Obrigado pela atenção :D
comentário é /* blabla */ e não \* ... *\
Parece ser isso.
Boas,
Mostra a query toda que estas a tentar inserir.
Suadações,
white_devil
20-04-2008, 20:28
ja estive a correr o codigo e nao enkontro o erro k ele diz k esta a enkontrar...
Conteudo do Ficheiro CLIENTES_CLASS.PHP:
<?
Class clientes
{
// variaveis que correspondem aos campos da tabela clientes
var $Cod_Cliente;
var $Nome_Contacto;
var $Departamento;
var $Telefone;
var $Extensao;
var $Email;
var $Notas;
// $message contendo o resultado da execucao das operacoes
var $message;
function clientes()
{
$this->Cod_Cliente = -1;
// Informacoes da coneccao do utilizador
$host = "localhost";
$user = "easypc";
$password = "sporting";
// Base de dados utilizada
$database_name = "Recursos";
// Coneccao mysql
$connexion = mysql_connect($host, $user, $password) or die (mysql_error());
// Seleccao da Base de Dados
$db = mysql_select_db($database_name, $connexion) or die(mysql_error());
}
// pesquisa na tabela
function getClientes($Cod_Cliente)
{
// procura
$sql = "SELECT * ";
$sql .= "FROM clientes ";
$sql .= "WHERE Cod_Cliente = '$Cod_Cliente';";
// Execucao
$rsql = mysql_query($sql);
// Resultado
if (mysql_num_rows($rsql) == 0)
{
// Caso de erro
$this->Cod_Cliente = -1;
}
else
{
// Caso de sucesso
$this->Cod_Cliente = mysql_result($rsql, 0, "Cod_Cliente");
$this->Nome_Contacto = mysql_result($rsql, 0, "Nome_Contacto");
$this->Departamento = mysql_result($rsql, 0, "Departamento");
$this->Telefone = mysql_result($rsql, 0, "Telefone");
$this->Extensao = mysql_result($rsql, 0, "Extensao");
$this->Email = mysql_result($rsql, 0, "Email");
$this->Notas = mysql_result($rsql, 0, "Notas");
}
}
// Afixar pelo critério especificado de todas as gravações
// A escrita da variável $whereCriterio pode ser como segue:
// criterio1 E (criterio2 OU criterio3)
// A escrita da variável $orderCriterio pode ser como se segue:
// criterio1, criterio2, criterio3
function getAllClientes($whereCriterio='', $orderCriterio='')
{
// procura
$sql = "SELECT * ";
$sql .= "FROM clientes ";
if($whereCriterio)
{
$sql .= "Where $whereCriterio ";
}
if($orderCriterio)
{
$sql .= "Order by $orderCriterio ";
}
/*if($criterio)
{
$sql .= "Where $criterio ";
}
$sql .= "Order by Cod_Cliente";*/
// Execucao
$rsql = mysql_query($sql);
// Resultado
if (mysql_num_rows($rsql) == 0)
{
// Caso de erro
$this->Cod_Cliente = -1;
}
else
{
// Caso de sucesso
$ret = array();
while($line=mysql_fetch_object($rsql))
{
$ret[] = $line;
}
return $ret;
}
}
// Novo Registo
function setClientes()
{
// procura
$sql = "INSERT INTO clientes (`Nome_Contacto`, `Departamento`, `Telefone`, `Extensao`, `Email`, `Notas`, `Cod_Cliente`) ";
$sql .= "VALUES (
'".$this->formatData($this->Nome_Contacto)."',
'".$this->formatData($this->Departamento)."',
'".$this->formatData($this->Telefone)."',
'".$this->formatData($this->Extensao)."',
'".$this->formatData($this->Email)."',
'".$this->formatData($this->Notas)."',
'".$this->getNewId()."'); ";
// Execucao e resultado
if (mysql_query($sql))
{
$this->message = "Novo registo inserido com sucesso!";
}
else
{
$this->message = "Problema a tentar inserir o novo registo! Erro: ".mysql_error();
}
}
// Alteracao de registos
function updateClientes($Cod_Cliente)
{
$sql = "UPDATE clientes SET ";
$sql .= "`Nome_Contacto` = '".$this->formatData($this->Nome_Contacto)."', ";
$sql .= "`Departamento` = '".$this->formatData($this->Departamento)."', ";
$sql .= "`Telefone` = '".$this->formatData($this->Telefone)."', ";
$sql .= "`Extensao` = '".$this->formatData($this->Extensao)."', ";
$sql .= "`Email` = '".$this->formatData($this->Email)."', ";
$sql .= "`Notas` = '".$this->formatData($this->Notas)."', ";
$sql .= "`Cod_Cliente` = '$Cod_Cliente' ";
$sql .= "WHERE `Cod_Cliente` = '$Cod_Cliente';";
// Execucao e resultado
if(mysql_query($sql))
{
$this->message = "Alteracao efectuada com sucesso!";
}
else
{
$this->message = "Problema com a alteracao de registo! Erro: ".mysql_error();
}
}
// Apagar registos
function deleteClientes($Cod_Cliente)
{
// procura
$sql = "DELETE FROM clientes WHERE Cod_Cliente = '$Cod_Cliente';";
// Execucao e resultado
if (mysql_query($sql))
{
$this->message = "Apagado com sucesso!";
}
else
{
$this->message = "Problema ao apagar registo! Erro: ".mysql_error();
}
}
// criacao de um novo ID para incrementacao
function getNewId()
{
$sql = mysql_query(" select max(Cod_Cliente) from clientes ");
$line = mysql_fetch_row($sql);
$newId = $line[0]+1;
return $newId;
}
// Formatacao dos dados para evitar os problemas possíveis que podem ser causados pelos caracteres interpretados por PHP, por Mysql ou por HTML (acentuados ou especiais)
function formatData($d)
{
return (htmlentities($d, ENT_QUOTES));
}
}
?>
Conteudo do ficheiro CLIENTES_SQL.PHP:
<?
require_once('clientes_class.php');
$newClientes = new clientes();
if(isset($_REQUEST['cmd_submit']))
{
// escolha da operacao
switch ($_REQUEST['action'])
{
// Novo Registo
case 'Novo Registo':
$newClientes->Nome_Contacto = $_REQUEST['txt_Nome_Contacto'];
$newClientes->Departamento = $_REQUEST['txt_Departamento'];
$newClientes->Telefone = $_REQUEST['txt_Telefone'];
$newClientes->Extensao = $_REQUEST['txt_Extensao'];
$newClientes->Email = $_REQUEST['txt_Email'];
$newClientes->Notas = $_REQUEST['txt_Notas'];
$newClientes->setClientes();
break;
// Caso alterar
case 'Alterar':
$newClientes->Nome_Contacto = $_REQUEST['txt_Nome_Contacto'];
$newClientes->Departamento = $_REQUEST['txt_Departamento'];
$newClientes->Telefone = $_REQUEST['txt_Telefone'];
$newClientes->Extensao = $_REQUEST['txt_Extensao'];
$newClientes->Email = $_REQUEST['txt_Email'];
$newClientes->Notas = $_REQUEST['txt_Notas'];
$newClientes->updateClientes($_REQUEST['txt_Cod_Cliente']);
break;
// Caso Apagar
case 'Apagar':
$newClientes->deleteClientes($_REQUEST['txt_Cod_Cliente']);
break;
}
// Redireccionamento + resultado da operacao
header('Location: '.$_REQUEST['redirect'].'?message='.$newClientes->message);
}
?>--------------------------------------------------------------------------------------------
Qual koisa tentem mesmo usar o backoffice e experimentem voces mesmo... LINK Actualizado :S
nao encontro mesmo o caracter que a mensagem diz que esta a causar o erro...
white_devil
09-06-2008, 14:30
Boas...
O Backoffice ja se encontra a funcionar a 100%. agora vem a parte em que eu nao entendo nada (admito) em que tenho que criar relacões entre as tabelas e fazer com que um cliente que faça uma marcação no meu site e que este verifique automaticamente se o recurso esta disponivel ou nao. tambem tenho que criar um sistema de login no site com diferentes tipos de direitos. exemplo: alguns utilizadores so poderão fazer marcações mas nao podem apagar nem editar as marcações.
Espero que me possam ajudar e agradeço desde ja a atenção.