Jump to content
Sign in to follow this  
ricardo_1977

Erro ao verificar se um campo existe

Recommended Posts

ricardo_1977

Boas, tenho um codigo simples mas que me esta a dar 1 erro que nao estou a decifrar.

eu quero alterar os dados de um cliente.

vou verificar se ele existe para alterar(ou nao).

aqui fica o codigo

$id = $_POST["id"];
$qe = "SELECT count(id) as 'TOTAL' FROM clientes where id = '$id' ;" ; 
$resultado = mysql_query($qe);
$tot = TOTAL;
print($tot);
if(TOTAL==0) {
echo "<div class = 'errophp'><b>Id não existe!!!</b></div>";
die (mysql_error());
}

alguem me consegue ajudar?

Share this post


Link to post
Share on other sites
ricardo_1977

da isto:

Notice: Use of undefined constant TOTAL - assumed 'TOTAL' in C:\xampp\htdocs\Cab\html\php\alterar.php on line 15

e depois da-me sempre que o id nao existe mesmo que eu ponha algum id que exista.

dentro do ciclo if se puser o TOTAL com pelicas ja nao me dá o erro mas da-me sempre que o id nao existe

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

No "as 'Total'" não precisas de plicas, no "'$id'" também não, não precisas do ponto-e-vírgula. Devias fazer algumas validações, por exemplo verificar de $id é um integer. Qual é o erro que te dá!?

No entanto,

<?php

$id		= $_POST["id"];
$qe		= "SELECT count(id) as TOTAL FROM clientes where id = '$id'"; 
$resultado	= mysql_fetch_assoc(mysql_query($sql));

if( ! $resultado['TOTAL'] ) {

echo "<div class = 'errophp'><b>Id não existe!!!</b></div>";
die( mysql_error() );

}

?>

Share this post


Link to post
Share on other sites
ricardo_1977

Boas, se puser o codigo como tens acima já nao da o erro (penso que seja um warning) mas diz-me sempre que o id nao existe.

a variavel id é chave primaria do tipo int

Share this post


Link to post
Share on other sites
Mac135

poderá ser agora um erro de comunicação entre formulario e como estas a receber os dados

Share this post


Link to post
Share on other sites
ricardo_1977

Eu ao receber o post do id estou a fazer um print desse id e da-me sempre o valor correcto

nao percebo o que se passa.

aqui vai o formulario.

<html>
<head>
<link rel="stylesheet" 
type="text/css" href="css/frontPage.css" />
<title> Formulario para inserir na bd </title>
<meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1">
</head>
<body>
<h1 class ="headerAlterar">Gotas de Cor Cabeleireiros - Alterar Dados</h1>
<form action = "php/alterar.php" method = "post" name = "clientes" id = "clientes">
<div class = "idAlterar"><b> Id:</b>
<input name = "id" type = "integer" id = "id" size = "30"></div>
<div class = "nomeAlterar"><b> Nome:</b>
<input name = "nome" type = "text" id = "nome" size = "30"></div>
<div class = "moradaAlterar"><b> Morada:</b>
<input name = "morada" type = "text" id = "morada" size = "30"></div>
<div class = "contactoAlterar"><b> Contacto:</b>
<input name = "contacto" type = "text" id = "contacto" size = "30"></div>
<div class = "dataNascAlterar"><b> Data Nascimento:</b>
</div> 
<div class = "diaAlterar"><b> Dia:</b>
<input name = "dia" type = "text" id = "dia" size = "3"></div> 
<div class = "mesAlterar"><b> Mês:</b>
<input name = "mes" type = "text" id = "mes" size = "3"></div> 
<div class = "anoAlterar"><b> Ano:</b>
<input name = "ano" type = "text" id = "ano" size = "6"></div> 
<div class = "insereButtonAlterar" >
<input type = "submit" name = "Submit" value = "Submeter">
</div>
</form>
<a  href = "http://localhost/Cab/html/clientes.html">
<p class = "voltarAlterar" > Voltar</p></a>
</body>
</html>

Share this post


Link to post
Share on other sites
Mac135

na tua primeira linha do form tira o que esta dentro action e testa

<form action = "" method = "post" name = "clientes" id = "clientes">

Share this post


Link to post
Share on other sites
ricardo_1977

mas essa action é que me esta a chamar a funcao alterar.php

sem ela nao faz nada.

teria de alterar o meu codigo todo.

Share this post


Link to post
Share on other sites
Mac135

Criei um ficheiro chamado alterar.php

e coloquei lá isto

<?php
$id             = $_POST["id"];
echo "<br>id ".$id;
?>

e imprime o numero que coloco

ve se o caminho esta certo

Share this post


Link to post
Share on other sites
ricardo_1977

agora passa-se algo estranho.

se puser o codigo desta forma por vezes da outras vezes nao....

<?php
$id = $_POST["id"];
include("conectdb.php");
$qe = "SELECT * FROM clientes where id = '$id' " ; 
$resultado = mysql_query($qe);

if(!($num_rows = mysql_fetch_array($resultado))) {
echo "<div class = 'errophp'><b>Id não existe!!!</b></div>";
die (mysql_error());
}

Share this post


Link to post
Share on other sites
ricardo_1977

por estranho k se pareça agora esta a funcionar muito bem com o mesmo codigo(o ultimo que pus).

acho que a ligaçao estava-se a passar

Share this post


Link to post
Share on other sites
fabiomiguel3

Eu faria assim

require_once('conectdb.php');
$id = $_POST["id"];
$sql = "SELECT * FROM clientes where id = '$id' " ; 
$resultado = mysql_query($sql);
$conta = mysql_num_rows($resultado);
if($conta == 0){
die('Esse cliente não existe!');
}
$row = mysql_fetch_array($resultado);

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Não assassines o PHP, por favor...

Nesse caso, o correcto é:

if(!mysql_num_rows($resultado)) {

Share this post


Link to post
Share on other sites
fabiomiguel3

Boas,

Não assassines o PHP, por favor...

Nesse caso, o correcto é:

if(!mysql_num_rows($resultado)) {

Isso continua a ser um assasinato ....

Share this post


Link to post
Share on other sites
ricardo_1977

sim tens razao na parte de:

if(!mysql_num_rows($resultado)) {

mas eu so estava a ver se funcionava.

depois vou optimizar o codigo

de qualquer das formas ja esta a funcionar correctamente.

Thks a todos

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
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.