Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Depieri Barduchi

warning no mysql_fetch_array() do delete

Recommended Posts

Falaew galera, beleza?

estava fazendo uma página de exclusão de usuário, na pagina faz a verificação de dependentes pelo código do usuário titular (tb_titular) para identificar os dependentes (tb_dependente), aew estava testando no gerenciador de mysql e funfou de boa, mas quando aplico no php ele acusa o erro:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\HAOC\WEB_2008\web\adm\cadastro_empresa\del_usuarios.php on line 106

 

o sql vem assim:

DELETE tb_dependente, tb_titular FROM tb_dependente INNER JOIN tb_titular ON tb_dependente.id_titular_dependente=tb_titular.codigo_titular Where tb_titular.codigo_titular= CONVERT( _utf8 '2222/22.22222.22-2' USING latin1 ) COLLATE latin1_swedish_ci 
e na linha 106 está assim:

while($l = mysql_fetch_array($res_sql_exclui_dependentes_titular)) {
	$codigo_titular			= $l["codigo_titular"];
	$id_dependente			= $l["id_dependente"];
	$id_titular_dependente	= $l["id_titular_dependente"];
	$nome_dependente   		= $l["nome_dependente"];
					
	print"<br />$nome_dependente está excluído(a).";
}

o interessante é que acusa o erro de warning mas exclui do banco corretamente, como posso corrigir, melhorar?

 

vlw e t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual eh a linha 106 ??

 

Talvez nem seja ela, seja uma linha antes.

Poste aqui pra nós vermos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual eh a linha 106 ??

 

Talvez nem seja ela, seja uma linha antes.

Poste aqui pra nós vermos.

 

Vou postar o fonte fica mais fácil rs

a linha 106 é o while ( while($l = mysql_fetch_array($res_sql_exclui_dependentes_titular)) { )

 

					$_SESSION['codigo_titular']=$codigo_titular;
					$sql_exclui_dependentes_titular = "
						DELETE 
							"._TABELA_DEPENDENTE_.", "._TABELA_TITULAR_." 
						FROM 
							"._TABELA_DEPENDENTE_." 
						INNER JOIN 
							"._TABELA_TITULAR_." 
						ON 
							"._TABELA_DEPENDENTE_.".id_titular_dependente="._TABELA_TITULAR_.".codigo_titular 
						Where 
							"._TABELA_TITULAR_.".codigo_titular='".$_SESSION['codigo_titular']."'
					";
					
					print $sql_exclui_dependentes_titular;
					
					$res_sql_exclui_dependentes_titular = mysql_query($sql_exclui_dependentes_titular);
					
					//	é zerada as variáveis
					(isset($codigo_titular))		?$codigo_titular 			= "":false;
					(isset($id_dependente))			?$id_dependente 			= "":false;
					(isset($id_titular_dependente))	?$id_titular_dependente 	= "":false;
					(isset($nome_dependente))		?$nome_dependente 			= "":false;
					
					while($l = mysql_fetch_array($res_sql_exclui_dependentes_titular)) {
						$codigo_titular			= $l["codigo_titular"];
						$id_dependente			= $l["id_dependente"];
						$id_titular_dependente	= $l["id_titular_dependente"];
						$nome_dependente   		= $l["nome_dependente"];
						
						print"<br />$nome_dependente está excluído(a).";
					}

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta agora com esse

<?php
  $_SESSION['codigo_titular']=$codigo_titular;
$sql_exclui_dependentes_titular = "DELETE "._TABELA_DEPENDENTE_.", "._TABELA_TITULAR_." FROM "._TABELA_DEPENDENTE_." INNER JOIN "._TABELA_TITULAR_." ON "._TABELA_DEPENDENTE_."id_titular_dependente = "._TABELA_TITULAR_."codigo_titular Where "._TABELA_TITULAR_." codigo_titular='".$_SESSION['codigo_titular']."'";

print $sql_exclui_dependentes_titular;

$res_sql_exclui_dependentes_titular = mysql_query($sql_exclui_dependentes_titular);

//      é zerada as variáveis
(isset($codigo_titular))                ?$codigo_titular                        = "":false;
(isset($id_dependente))                 ?$id_dependente                         = "":false;
(isset($id_titular_dependente)) ?$id_titular_dependente         = "":false;
(isset($nome_dependente))               ?$nome_dependente                       = "":false;

while($l = mysql_fetch_array($res_sql_exclui_dependentes_titular)) {
		$codigo_titular                 = $l["codigo_titular"];
		$id_dependente                  = $l["id_dependente"];
		$id_titular_dependente  = $l["id_titular_dependente"];
		$nome_dependente                = $l["nome_dependente"];
		
		print"<br />$nome_dependente está excluído(a).";
		}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acusa o mesmo erro no while, o que diferencia é o numero da linha em que ele se encontra, e não faz a exclusão no banco.

vlw

 

não sei se ajuda mas vou postar o as tabelas

 

-- phpMyAdmin SQL Dump
-- version 2.11.0
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tempo de Geração: Set 18, 2009 as 10:25 AM
-- Versão do Servidor: 5.0.45
-- Versão do PHP: 5.2.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Banco de Dados: `db_haoc_empresas`
--

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

--
-- Estrutura da tabela `tb_dependente`
--

CREATE TABLE `tb_dependente` (
  `id_dependente` int(4) NOT NULL auto_increment,
  `id_titular_dependente` varchar(18) NOT NULL,
  `codigo_dependente` varchar(18) NOT NULL,
  `nome_dependente` varchar(255) NOT NULL,
  `data_dependente` date NOT NULL,
  `estado_civil_dependente` varchar(10) NOT NULL,
  `mae_dependente` varchar(255) NOT NULL,
  `rg_dependente` varchar(12) NOT NULL,
  `cpf_dependente` varchar(14) NOT NULL,
  `vinculo_dependente` varchar(10) NOT NULL,
  `data_cadastro_dependente` date NOT NULL,
  `data_acesso_dependente` date NOT NULL,
  `status_dependente` int(1) NOT NULL,
  PRIMARY KEY  (`id_dependente`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Extraindo dados da tabela `tb_dependente`
--

INSERT INTO `tb_dependente` (`id_dependente`, `id_titular_dependente`, `codigo_dependente`, `nome_dependente`, `data_dependente`, `estado_civil_dependente`, `mae_dependente`, `rg_dependente`, `cpf_dependente`, `vinculo_dependente`, `data_cadastro_dependente`, `data_acesso_dependente`, `status_dependente`) VALUES
(1, '1111/11.11111.11-1', '1111/11.11111.11-0', 'dependente 01', '1110-11-11', '1', 'mãe do dependente 01', '11.111.110-0', '111.111.111-00', '', '2009-09-18', '2009-09-18', 1),
(2, '1111/11.11111.11-1', '1111/11.11111.11-2', 'dependente 02', '1112-11-11', '2', 'mãe do dependente 02', '11.111.112-2', '111.111.111-22', '', '2009-09-18', '2009-09-18', 1),
(3, '1111/11.11111.11-1', '1111/11.11111.33-3', 'dependente 03', '1113-11-11', '3', 'mãe do dependente 03', '11.111.113-3', '111.111.111-33', '', '2009-09-18', '2009-09-18', 1),
(4, '1111/11.11111.11-1', '1111/11.11111.44-4', 'dependente 04', '1114-11-11', '4', 'mãe do dependente 04', '11.111.114-4', '111.111.111-44', '', '2009-09-18', '2009-09-18', 1),
(5, '1111/11.11111.11-1', '1111/11.11111.55-5', 'dependente 05', '1115-11-11', '5', 'mãe do dependente 05', '11.111.115-5', '111.111.111-55', '', '2009-09-18', '2009-09-18', 1),
(6, '2222/22.22222.22-2', '2222/22.22222.00-0', 'dependente 01', '1110-11-11', '1', 'mãe do dependente 01', '22.222.220-0', '222.222.222-00', '', '2009-09-18', '2009-09-18', 1),
(7, '2222/22.22222.22-2', '2222/22.22222.22-0', 'dependente 02', '1112-11-11', '2', 'mãe do dependente 02', '22.222.222-2', '222.222.222-22', '', '2009-09-18', '2009-09-18', 1);

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

--
-- Estrutura da tabela `tb_titular`
--

CREATE TABLE `tb_titular` (
  `id_titular` int(4) NOT NULL auto_increment,
  `codigo_titular` varchar(18) NOT NULL,
  `nome_titular` varchar(255) NOT NULL,
  `data_titular` date NOT NULL,
  `estado_civil_titular` int(1) NOT NULL,
  `mae_titular` varchar(255) NOT NULL,
  `rg_titular` varchar(12) NOT NULL,
  `cpf_titular` varchar(14) NOT NULL,
  `pis_titular` varchar(14) NOT NULL,
  `admissao_titular` date NOT NULL,
  `endereco_titular` varchar(80) NOT NULL,
  `telefone_titular` varchar(13) NOT NULL,
  `celular_titular` varchar(13) NOT NULL,
  `email_titular` varchar(80) NOT NULL,
  `data_acesso_titular` date NOT NULL,
  `data_cadastro_titular` date NOT NULL,
  `status_titular` int(1) NOT NULL,
  PRIMARY KEY  (`id_titular`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Extraindo dados da tabela `tb_titular`
--

INSERT INTO `tb_titular` (`id_titular`, `codigo_titular`, `nome_titular`, `data_titular`, `estado_civil_titular`, `mae_titular`, `rg_titular`, `cpf_titular`, `pis_titular`, `admissao_titular`, `endereco_titular`, `telefone_titular`, `celular_titular`, `email_titular`, `data_acesso_titular`, `data_cadastro_titular`, `status_titular`) VALUES
(1, '1111/11.11111.11-1', 'titular 01', '1111-11-11', 1, 'Mãe do titular 01', '11.111.111-1', '111.111.111-11', '11.111.111-11', '1111-11-11', 'endereço titular 01', '(11)1111-1111', '(11)1111-1111', 'titular01@mail.com', '2009-09-18', '2009-09-18', 1),
(2, '2222/22.22222.22-2', 'titular 02', '2222-02-22', 2, 'Mãe do titular 02', '22.222.222-2', '222.222.222-22', '22.222.222-22', '2222-02-22', 'endereço titular 02', '(22)2222-2222', '(22)2222-2222', 'titular02@mail.com', '2009-09-18', '2009-09-18', 1);

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem certeza que está certa seu delete..

imprima ele na tela, acho que você fez isso neh

 

e depois coloque no sql e ve se dá certo lah

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql_exclui_dependentes_titular = "DELETE "._TABELA_DEPENDENTE_.", "._TABELA_TITULAR_." FROM "._TABELA_DEPENDENTE_." INNER JOIN "._TABELA_TITULAR_." ON "._TABELA_DEPENDENTE_."id_titular_dependente = "._TABELA_TITULAR_."codigo_titular Where "._TABELA_TITULAR_." codigo_titular='".$_SESSION['codigo_titular']."'";

nessa query ae, o que seria _TABELA_DEPENDENTE , _TABELA_TITULAR ???

 

Agora que eu reparei... Seria os nomes das tabelas ae

E a sintaxe do Delete eh assim:

 

DELETE FROM TABELA WHERE CONDICAO

 

nao pode ter nada no meio do DELETE e do FROM, que nem você ta fazendo

Entao o certo seria assim

 

$sql_exclui_dependentes_titular = "DELETE FROM tb_dependentes INNER JOIN tb_titular ON tb_dependente.id_titular_dependente = tb_titular.codigo_titular Where tb_titular.codigo_titular= '".$_SESSION['codigo_titular']."'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se eu entendi...

 

você está tentando dar um fetch_array no resultado de um DELETE?

não teria que ser de um SELECT?

 

 

ahh

e uma boa dica, é você dar uma olhada em conceitos de orientação a objetos..

eu fiz uma classe que pode ser um começo

http://www.freelancersbrasil.com/classe-conexao-php-mysqli/

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.