Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brunobrobr1

Deletar dados BANCO DE DADOS

Recommended Posts

Bom dia, bom gostaria que vocês me ajudassem a achar o erro neste sistema, bom e um sistema simples de editar e excluir dados do bando de dados, bom quando eu clico em deletar algum dado aparece este erro aqui:

 

Notice: Undefined index: id_cliente in C:\wamp\www\listar dados do banco de dados\delete.php on line 10 Call Stack # Time Memory Function Location 1 0.0000 144264 {main}( ) ..\delete.php:0

aparece que a linha 10 que esta com o erro, a minha linha 10 e a seguinte:

$id=$_POST['codigo'];
o resto funciona tudo só para deletar ou excluir que aparece este erro, pensei que fosse no banco de dados pois no banco de dados a primeira linha esta assim :

id_cliente
mais nao e , tentei trocar o ['codigo'] por ['id_cliente'] , mais mesmo assim não deu certo, aguardo a ajuda de vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok aqui vai o codigo,

 

o codigo do delete.php esta assim :

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>


<body>
<?php
$id=$_POST['codigo'];
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$endereco = $_POST['endereco'];
$cep = $_POST['cep'];
include 'conexao.php';
$result= mysql_query("DELETE FROM clientes WHERE id_cliente='$id'");
mysql_close($con);


echo "<input type=\"button\" value=\"Voltar\" onclick=\"location.href='lista_clientes.php'\" >";
?>
</body>
</html>

A menssagem de erro e esta.

Notice: Undefined index: id_cliente in C:\wamp\www\listar dados do banco de dados\delete.php on line 10 Call Stack # Time Memory Function Location 1 0.0000 144264 {main}( ) ..\delete.php:0

 

 

 

 

e o banco de dados esta assim:

-- phpMyAdmin SQL Dump
-- version 4.0.4
-- http://www.phpmyadmin.net
--
-- Máquina: localhost
-- Data de Criação: 20-Jun-2014 às 15:51
-- Versão do servidor: 5.6.12-log
-- versão do PHP: 5.4.16

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de Dados: `banco-sa-110`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `clientes`
--

CREATE TABLE IF NOT EXISTS `clientes` (
  `id_cliente` int(10) NOT NULL,
  `nome_cliente` varchar(150) NOT NULL,
  `fone-cliente` int(10) NOT NULL,
  `end_cliente` varchar(150) NOT NULL,
  `cep_cliente` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Extraindo dados da tabela `clientes`
--

INSERT INTO `clientes` (`id_cliente`, `nome_cliente`, `fone-cliente`, `end_cliente`, `cep_cliente`) VALUES
(1, 'bruno', 32973856, 'rua cm 14 goiania', 74463877),
(1, 'bruno', 32973856, 'rua cm 14 goiania', 74463877);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Defina o índice do campo "id_cliente" como "PRIMARY" e defina ele como auto-increment.


Esqueci de falar: mude o nome do campo "id_cliente" para apenas "id". Não se esqueça de mudar o nome do campo tb na query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha fiz as alterações que você falou agora quando clico para adicionar ou remover dados, aparece um erro na linha 14 da pagina deletar.php e a linha 14 e a seguinte:

while($row= mysql_fetch_array($result)){

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro e este

 

 

 

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\listar dados do banco de dados\deletar.php on line 14 Call Stack # Time Memory Function Location 1 0.0000 143264 {main}( ) ..\deletar.php:0 2 0.0469 150208 mysql_fetch_array ( ) ..\deletar.php:14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua o trecho

$result= mysql_query("DELETE FROM clientes WHERE id_cliente='$id'");

por

$result= mysql_query("DELETE FROM clientes WHERE id_cliente='$id'") or die(mysql_error());

E diga qual erro foi retornado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu fiz as mudança , mais mesmo assim ta dando o erro nesses dois arquivos aqui , altera.php e deletar.php na mesma linha a 14 que e esta :

while($row= mysql_fetch_array($result)){

este erro esta nos dois arquivos , e quanto ao que você falou pra min alterar eu alterei ai quando vou rodar ele esta dando os seguintes erros:

 Notice: Undefined index: codigo in C:\wamp\www\listar dados do banco de dados\delete.php on line 10
Call Stack
#	Time	Memory	Function	Location
1	0.0000	141664	{main}( )	..\delete.php:0

( ! ) Notice: Undefined index: nome in C:\wamp\www\listar dados do banco de dados\delete.php on line 11
Call Stack
#	Time	Memory	Function	Location
1	0.0000	141664	{main}( )	..\delete.php:0

( ! ) Notice: Undefined index: fone in C:\wamp\www\listar dados do banco de dados\delete.php on line 12
Call Stack
#	Time	Memory	Function	Location
1	0.0000	141664	{main}( )	..\delete.php:0

( ! ) Notice: Undefined index: endereco in C:\wamp\www\listar dados do banco de dados\delete.php on line 13
Call Stack


#	Time	Memory	Function	Location
1	0.0000	141664	{main}( )	..\delete.php:0

( ! ) Notice: Undefined index: cep in C:\wamp\www\listar dados do banco de dados\delete.php on line 14
Call Stack


#	Time	Memory	Function	Location
1	0.0000	141664	{main}( )	..\delete.php:0
 Unknown column 'id_cliente' in 'where clause'

nas linhas 10,11,12,13 e 14 que sao estas :

$id=$_POST['codigo'];
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$endereco = $_POST['endereco'];
$cep = $_POST['cep'];

e no final do erro aparece este erro aqui:

 

 Unknown column 'id_cliente' in 'where clause'

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Unknown column 'id_cliente' in 'where clause'

 

Vc não mudou o campo na query. Mudou somente no banco de dados.

 

 

 

Notice: Undefined index: codigo in C:\wamp\www\listar dados do banco de dados\delete.php on line 10

Call Stack

# Time Memory Function Location

1 0.0000 141664 {main}( ) ..\delete.php:0

 

( ! ) Notice: Undefined index: nome in C:\wamp\www\listar dados do banco de dados\delete.php on line 11

Call Stack

# Time Memory Function Location

1 0.0000 141664 {main}( ) ..\delete.php:0

 

( ! ) Notice: Undefined index: fone in C:\wamp\www\listar dados do banco de dados\delete.php on line 12

Call Stack

# Time Memory Function Location

1 0.0000 141664 {main}( ) ..\delete.php:0

 

( ! ) Notice: Undefined index: endereco in C:\wamp\www\listar dados do banco de dados\delete.php on line 13

Call Stack

 

 

# Time Memory Function Location

1 0.0000 141664 {main}( ) ..\delete.php:0

 

( ! ) Notice: Undefined index: cep in C:\wamp\www\listar dados do banco de dados\delete.php on line 14

Call Stack

 

Isso aconteceu pq não houve POST dos dados ou os campos do seu formulário não tem esses nomes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo este

Unknown column 'id_cliente' in 'where clause'

Arrumei, agora o problema esta só mesmo nestas linhas aqui :

 

 

 

Notice: Undefined index: id in C:\wamp\www\listar dados do banco de dados\delete.php on line 10 Call Stack # Time Memory Function Location 1 0.0000 141680 {main}( ) ..\delete.php:0
( ! ) Notice: Undefined index: nome_cliente in C:\wamp\www\listar dados do banco de dados\delete.php on line 11 Call Stack # Time Memory Function Location 1 0.0000 141680 {main}( ) ..\delete.php:0
( ! ) Notice: Undefined index: fone-cliente in C:\wamp\www\listar dados do banco de dados\delete.php on line 12 Call Stack # Time Memory Function Location 1 0.0000 141680 {main}( ) ..\delete.php:0
( ! ) Notice: Undefined index: end_cliente in C:\wamp\www\listar dados do banco de dados\delete.php on line 13 Call Stack # Time Memory Function Location 1 0.0000 141680 {main}( ) ..\delete.php:0
( ! ) Notice: Undefined index: cep_cliente in C:\wamp\www\listar dados do banco de dados\delete.php on line 14 Call Stack # Time Memory Function Location 1 0.0000 141680 {main}( ) ..\delete.php:0

 

isto e do delete.php

 

estas linhas estao assim:

$id=$_POST['id'];
$nome = $_POST['nome_cliente'];
$fone = $_POST['fone-cliente'];
$endereco = $_POST['end_cliente'];
$cep = $_POST['cep_cliente'];

esta do mesmo jeito que do banco de dados no mysql, nao estou intendendo o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essas linhas não precisam estar iguais às linhas do banco de dados, mas sim iguais aos nomes dos campos do seu formulário. Poste o código do HTML do seu formulário, os nomes não devem estar batendo ou vc não está enviando o formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, formulario do lista_clientes.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<?php
include("conexao.php");
$result=mysql_query("select * from clientes");
echo "<table width=900 border=\"2\">";
echo "<tr>";
echo "<td>Codigo</td>";
echo "<td>Nome</td>";
echo "<td>Telefone</td>";
echo "<td>Endereco</td>";
echo "<td>Cep</td>";
echo "<td>Ações</td>";
echo "</tr>";
while($row=mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['nome_cliente']."</td>";
echo "<td>".$row['fone-cliente']."</td>";
echo "<td>".$row['end_cliente']."</td>";
echo "<td>".$row['cep_cliente']."<br>"."</td>";
echo "<td>";
echo "<a href=\"altera.php?id=".$row['id']."\">A</a>";
echo "<a href=\"deletar.php?id=".$row['id']."\">D</a>";
echo "</td>";
echo "</tr>";
}
?>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sim kkkkk pera ae que mandei errado o formulario e este aqui,

 

o formulario que você esta falando e o que eu edito os campos ne ? bom pra min faze o envio eu estou usando um outro documento aqui vou te mostrar,

 

o codigo que eu fasso a alteração na tabela e a seguinte altera.php

<?php
$id=$_GET['id'];
include "conexao.php";
$result= mysql_query("select * from clientes where id='$id'");
echo "<form name=\"form\" action=\"update.php\" method=\"post\">";
while($row= mysql_fetch_array($result)){
echo "<input type=\"text\" name\"codigo\" value=".$row['id']."><br>";
echo "<input type=\"text\" name=\"nome\" value=".$row['nome_cliente']."><br>";
echo "<input type=\"text\" name=\"fone\" value=".$row['fone-cliente']."><br>";
echo "<input type=\"text\" name=\"endereco\" value=".$row['end_cliente']."><br>";
echo "<input type=\"text\" name=\"cep\" value=".$row['cep_cliente']."><br>";
echo "<input type=\"submit\" value=\"Salvar\">";
echo "<input type=\"button\" value=\"Voltar\" onclick=\"location.href='lista_clientes.php'\" >";
}
?>

e o outro que eu te falei e o update.php que faz o seguinte:

 

<?php
$id=$_POST['codigo'];
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$endereco = $_POST['endereco'];
$cep = $_POST['cep'];
include 'conexao.php';
$result= mysql_query("UPDATE clientes SET nome_cliente = '$nome',telefone = '$fone', endereco = '$endereco', cep = '$cep' WHERE id='$id'");
mysql_close($con); 


echo "<input type=\"button\" value=\"Voltar\" onclick=\"location.href='lista_clientes.php'\" >";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok. Troque o código do post #13

$id=$_POST['id'];
$nome = $_POST['nome_cliente'];
$fone = $_POST['fone-cliente'];
$endereco = $_POST['end_cliente'];
$cep = $_POST['cep_cliente'];

por

$id=$_POST['codigo'];
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$endereco = $_POST['endereco'];
$cep = $_POST['cep'];

Dessa forma, as keys ficam iguais aos nomes que vc atribuiu aos campos no seu formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ja esta assim, olha o do post #13 e o delete.php ele esta desta forma :

 

<?php
$id=$_POST['codigo'];
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$endereco = $_POST['endereco'];
$cep = $_POST['cep'];
include 'conexao.php';
$result= mysql_query("DELETE FROM clientes WHERE id='$id'") or die(mysql_error());
mysql_close($con);


echo "<input type=\"button\" value=\"Voltar\" onclick=\"location.href='lista_clientes.php'\" >";
?>

Amigo agora e o seguinte nao sei oque fiz mais deu certo rs , aogra o unico erro que esta acontecendo e este aqui que acontece quando eu aperto para deletar ou para editar so esta acontecendo esse erro aqui

Notice: Undefined index: codigo in C:\wamp\www\listar dados do banco de dados\update.php on line 10
Call Stack
#	Time	Memory	Function	Location
1	0.0000	144624	{main}( )	..\update.php:0

este erro esta aparecendo no update.php e no delete.php nos dois aparece esse erro so que somente na linha 10 que e está :

$id=$_POST['codigo'];

só o resto esta tudo ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua

echo "<input type=\"text\" name\"codigo\" value=".$row['id']."><br>";

por

echo "<input type=\"text\" name=\"codigo\" value=".$row['id']."><br>";

Só faltou o "=" após o name.

 

Sobre q já estava assim os nomes das keys do $_POST, mas você não me falou da mudança. Eu não sabia q você tinha alterado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.