Jump to content


Photo

Exclusão Mysql Simples


  • Faça o login para participar
18 replies to this topic

#1 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 12:58

olá amigos, como sou designer preciso muito da ajuda de vocês para fazer uma exclusão no banco.

no pequeno relatorio coloquei o seguinte código para excluir o registro:


<th width=50><a href='exclui_prop.php?id=$lista[p_id]'> Excluir</a><br></th>';

até aqui tudo bem, já esta passando o id para cada registro da listagem.

agora não consigo montar o delete.php

cheguei até aqui:

$lista[p_id] = $_GET ['p_id'];
$sql = mysql_query("DELETE FROM jos_propriedades WHERE $lista[p_id] ");
$resultado = mysql_query($sql)
or die ("Nao foi possivel realizar a exclusao dos dados.");
echo "<h1>A propriedade foi excluida com êxito!</h1>";


sempre exibe a mensagem de que não foi possível excluir, sei que é bem simples pois já li horrores... alguém por favor tem uma dica?

#2 marcosfj1

marcosfj1

    Turista

  • Usuários
  • 53 posts
  • Sexo:Masculino

Posted 30/08/2011, 13:45

É que vc nao tem que pegar o $lista[p_id], vc tem que pegar o que esta antes do =

No caso id

Ficando:

$lista[p_id] = $_GET ['id'];
$sql = mysql_query("DELETE FROM jos_propriedades WHERE $lista[p_id] ");
$resultado = mysql_query($sql)
or die ("Nao foi possivel realizar a exclusao dos dados.");
echo "<h1>A propriedade foi excluida com êxito!</h1>";


Valeu
==================================================================
Quer conhecer um site Diferente?
FORA DA TELA
==================================================================

#3 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 13:58

marcosfj1 muito obrigado pela ajuda!

fiz o que vc disse e exclui blz, so que está excluindo todos os registros e não apenas o que foi clicado, como se ele não estivesse obedecendo a ordem de excluir apenas um determinado id, onde será o meu erro ?
te alguma dica?

#4 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 30/08/2011, 15:04

var_dump( $lista[p_id] );

Qual o resultado disto ?
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#5 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 15:10

NULL

#6 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 30/08/2011, 15:22

Valor veio nulo... verifica seu HTML na parte : <th width=50><a href='exclui_prop.php?id=$lista[p_id]'> Excluir</a><br></th>';

Esse valor deve estar vindo vazio...

$id = $_GET['id'];
mysql_query("DELETE FROM jos_propriedades WHERE id = ".$id." ");

Você deve informar qual registro vc quer deletar em WHERE campo = valor

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#7 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 15:37

silici0, valew pela dica, não fiz exatamente como falou, mas deu certo... veja ....

$lista[p_id] = $_GET ['id'];
$sql = mysql_query("DELETE FROM jos_propriedades WHERE p_id = ".$lista[p_id]." ");
$resultado = mysql_query($sql)

a unica coisa é que aparece a mensagem de não foi possível excluir, quando na verdade deveria aparacer " excluído com sucesso".

tecnicamente falando, fica "feio" deixar sem a mensagem de excluído ou não?

#8 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 30/08/2011, 15:42

Não foi possível excluir porque o VALOR de $lista[p_id] veio como NULL ... seu html está enviando via GET o valor errado (ou nem esta enviando) ...

Outra coisa porque usar $list[] (um array) ?
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#9 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 15:51

então, consegui chegar até este código pois fui pegando partes de vários fóruns que li, tenho conhecimento apenas e arte a layout, como preciso mto disso e não consegui ninguem para fazer estou tentando, e graças a ajudas de vocês está dando certo.... já consegui gravar no banco + emitir um relatório e agora excluir, faltando apenas esta mensagem.. o que exatamente teria que verificar no html ?
muito obrigado pela dica

#10 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 30/08/2011, 16:18

<th width=50><a href='exclui_prop.php?id=$lista[p_id]'> Excluir</a><br></th>

Quando vc clica ai neste link... ele escreve id= oque ?
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#11 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 16:45

isso ...


http://www.meusite.c...prop.php?id=171
http://www.meusite.c...prop.php?id=172
http://www.meusite.c...prop.php?id=173

e assim por diante ... isso aparece quando voce coloca o mouse em cima do link, e quando clica ele exclui o registro.

#12 marcosfj1

marcosfj1

    Turista

  • Usuários
  • 53 posts
  • Sexo:Masculino

Posted 30/08/2011, 17:01

Ao invez de usar o OR DIE com a msg que deseja

Experimenta usar o comando

if(mysql_num_rows($resultado)){
echo "Linhas foram apagada";
}else{
echo "Nao foi excluido";
}


Este comando verifica se a sua consulta sql retornou alguma linha, só irá retornar qdo tiver o id, ou seja q foi encontrado e deletado

Valeu
==================================================================
Quer conhecer um site Diferente?
FORA DA TELA
==================================================================

#13 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 17:26

marcosfj1

fazendo deste jeito ele continua excluindo o registro clicado, porém retorna um erro:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/httpd/htdocs/itrmunbr/exclui_prop.php on line 44
Nao foi excluido

linhas:

44 if(mysql_num_rows($resultado)){
45 echo "Linhas foram apagada";
46 }else{
47 echo "Nao foi excluido";
48 }

#14 marcosfj1

marcosfj1

    Turista

  • Usuários
  • 53 posts
  • Sexo:Masculino

Posted 30/08/2011, 17:31

Amigo pode postar o codigo inteiro dessa parte, assim picado fica confuso,

Mostra o html com o link q vc clica a consulta sql e as msg que vc deseja dar

E tbm use a tag do forum code <>

Falou
==================================================================
Quer conhecer um site Diferente?
FORA DA TELA
==================================================================

#15 ericzao

ericzao

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 30/08/2011, 17:44

pagina que exibe a listagem para o usuário
$sql = "SELECT * FROM jos_propriedades ORDER BY p_municipio";

//EXECUTA O COMANDO ACIMA
$res = mysql_query($sql);


//VERIFICA SE O COMANDO FOI EXECUTADO COM SUCESSO
if($res) {


//EXIBE PARA O USUARIO
echo "
<table  
<tr>
<td>
<h3></h3>
</td>
<td>
<h3>Id</h3>
</td>
<td>
<h3>UF</h3>
</td>
<td>
<h3>Municipio</h3>
</td>
<td>
<h3>Distrito</h3>
</td>
<td>
<h3>Propriedade</h3>
</td>
<td>
<h3>Código INCRA</h3>
</td>
<td>
<h3>Matricula</h3>
</td>
<td>
<h3>CCIR</h3>
</td>
<td>
<h3>NIRF</h3>
</td>
<td>
<h3>Área Declarada</h3>
</td>
<td>
<h3>Valor Venal</h3>
</td>
<td>
<h3>Valor Terra Nua</h3>
</td>
<td>
<h3>Logradouro</h3>
</td>
<td>
<h3>Nº</h3>
</td>
<td>
<h3>Complemento</h3>
</td>

<td>
<h3>Cx Postal</h3>
</td>

<td>
<h3>Latitude</h3>
</td>

<td>
<h3>Longitude</h3>
</td>

<td>
<h3>Usuário</h3>
</td>

</tr>

";
while ($lista = mysql_fetch_array($res)){
echo "
<tr>
<td>


<a href='exclui_prop.php?id=$lista[p_id]'> Excluir</a><br>


<!--  HABILITAR QUANDO ESTIVER PRONTO
<a href='exibe_certificado.php' target='_blank'>Imprimir</a>
!-->
<!--<a href= 'exibe_certificado?id=".$lista['p_id']."'>
                        ".$lista['p_id']."
              </a>!-->

</td>

<td>
$lista[p_id]
</td>
<td>
$lista[p_uf]
</td>
<td>
$lista[p_municipio]
</td>
<td>
$lista[p_distrito]
</td>
<td>
$lista[p_nomePropriedade]
</td>
<td>
$lista[p_codIncra]
</td>
<td>
$lista[p_matricula]
</td>
<td>
$lista[p_ccir]
</td>
<td>
$lista[p_nirf]
</td>
<td>
$lista[p_areaDeclarada]
</td>
<td>
$lista[p_valorVenal]
</td>
<td>
$lista[p_valorTerraNua]
</td>
<td>
$lista[p_logradouro]
</td>
<td>
$lista[p_numero]
</td>
<td>
$lista[p_complemento]
</td>

<td>
$lista[p_cxPostal]
</td>

<td>
$lista[x]
</td>

<td>
$lista[y]
</td>

<td>
$lista[jos_cod_users]
</td>

</tr>


";
}//fecha o loop
echo "</table>";
}//fecha o if

else {
echo "Erro ao listar os dados!";
}

?>

abaixo o exclui.php que criei

<?php
/* Initialize Joomla framework */
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
/* Required Files */
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
/* To use Joomla's Database Class */
require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
/* Create the Application */
$mainframe =& JFactory::getApplication('site');
/**************************************************/

// Your code starts here...
/**************************************************/
$db = & JFactory::getDBO();
$tb_prefix = "jos";
function get_username_list($db,$tb_prefix, $limit){
 $query = "SELECT `username` FROM `{$tb_prefix}_users` order by id desc LIMIT {$limit}";
 $db->setQuery($query);
 $result = $db->loadObjectList();
 return $result;
}
//Get the list of usernames
$usernames = get_username_list($db, $tb_prefix, 10); 


foreach($usernames as $username){ 
 //echo $username->username. "<br />";
}

$session =& JFactory::getSession();

$user=& JFactory::getUser();

$userid = $user->guest ? 'guest' : $user->id;


$lista[p_id] = $_GET ['id'];
$sql = mysql_query("DELETE FROM jos_propriedades WHERE p_id = ".$lista[p_id]." ");
$resultado = mysql_query($sql);

if(mysql_num_rows($resultado)){
echo "Linhas foram apagada";
}else{
echo "Nao foi excluido";
}



?>

amigos morcosfj1 e silici0 lembrando que sou designer trabalho fazendo templates para joomla, drupal, magento entre outros. chegar até aqui onde cheguei para mim não foi nada fácil já que 'programar' para nós é extremamente difícil. desde já agradeço pela atenção de vocês, já aprendi bastante e com certeza repassarei estes aprendizados com outros colegas.

abraço!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq