Ir para conteúdo

POWERED BY:

Arquivado

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

Nick-pc

Mensagem de erro ao tenta apagar Valores por seleção

Recommended Posts

Poste como você gera o HTML do formulário, onde você cria os checkbox.

 

Eu tenho somente dois checkboxs dentro de uma tabela, um que seleciona todos e outro que fica em uma área reptitiva dessa tabela e com as variáveis rows dos campos de uma tabela do banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

outro que fica dentro de uma área reptitiva com as variáveis rows dos campos de uma tabela do banco de dados.

 

Poste esse código.

 

você lembrou de preencher o atributo value="" ?

Poste também a estrutura da sua tabela.

 

codigo exemplo:

<?php
	if($_SERVER['REQUEST_METHOD'] == 'POST')
	{
		if( is_array($_POST['deletar']) )
		{
			$ids = implode( ',', $_POST['deletar'] );
			$sql = " DELETE FROM `table` WHERE `id` IN ({$ids}) ";
			
			echo $sql;//depois comente essa linha
			$query = mysql_query( $sql )or die( mysql_error() );
		}
		else
			echo 'Você não selecionou nenhum check';
	}
?>	
	
	<form action="" method="post">
	
		<label>Registro 1<input type="checkbox" name="deletar[]" value="1" /></label>
		<label>Registro 2<input type="checkbox" name="deletar[]" value="2" /></label>
		<label>Registro 3<input type="checkbox" name="deletar[]" value="3" /></label>
		<label>Registro 4<input type="checkbox" name="deletar[]" value="4" /></label>
		<label>Registro 5<input type="checkbox" name="deletar[]" value="5" /></label>
		
		<input type="submit" name="enviar" value="enviar" />
	</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim o value está preenchido.

 

Estrutura da tabela

<table border="0" cellpadding="3" cellspacing="3">
        <tr>
          <th><input type="checkbox" id="checkAll" />
          <span class="style1">ID</span></th>
          <th class="style1">Nome painel</th>
          <th class="style1">Link</th>
        </tr>
        <?php do { ?>
          <tr>
            <td><input type="checkbox" name="checkbox[]" value="id_produto_excluir" />
            <?php echo $row_ListaPainel['ma_id']; ?></td>
            <td><?php echo $row_ListaPainel['ma_label']; ?></td>
            <td><?php echo $row_ListaPainel['ma_value']; ?></td>
          </tr>
          <?php } while ($row_ListaPainel = mysql_fetch_assoc($ListaPainel)); ?>
        <tr>
          <th><form id="form1" name="form1" method="post" action="registros_delete.php">
            <input type="submit" name="submit" id="submit" value="Apagar" />
          </form></th>
          <th> </th>
          <th> </th>

        </tr>
    </table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

value="id_produto_excluir"

Se seu código estiver desse jeito acima, o value dos seus checkboxes é a string 'id_produto_excluir'.

 

Tente:

<input type="checkbox" name="checkbox[]" value="<?echo $row_ListaPainel['ma_id'];?>" />

(supondo que o campo [ma_id] da sua tabela seja o ID do produto.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o codigo completo da pagina do formulário e também de registros_delete.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

O codigo da página registros_delete 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
require_once('../conecao/conecao.php');

if($_POST['checkbox'] == "")
{
   echo "Você não selecionou nenhum checkbox";
}
else
{
   if(is_array($_POST['checkbox']))
   {
      foreach($_POST['checkbox'] as $checks) 
      {
         $sql = "delete from tabela where id = $checks";
         $exe = mysql_query($sql);
      }
   }
   else
   {
       $sql = "delete from tabela where id = ".$_POST['checkbox'];
       $exe = mysql_query($sql);
   }
}
?>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o codigo completo do formulário tb, pois o erro está lá.

 

você disse que essa página sempre imprime "Você não selecionou nenhum checkbox" então não está recebendo o parâmetro "checkbox".

Lembre-se tb se substituir o foreach pelo código com implode que o Bruno postou, para economizar requisições.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Página do formulario

<?php require_once('conecao/conecao.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? strpislashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_pi, $pi);
$query_ListaPainel = "SELECT * FROM pi_menuadmin ORDER BY ma_id DESC";
$ListaPainel = mysql_query($query_ListaPainel, $pi) or die(mysql_error());
$row_ListaPainel = mysql_fetch_assoc($ListaPainel);
$totalRows_ListaPainel = mysql_num_rows($ListaPainel);
?>
<!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" />
<noscrpit><meta http-equiv="Refresh" content="0; URL=jsDesabilitado.php"/></noscrpit>
<title>Painel administrativo</title>
<style type="text/css">
<!--
body {
	background-color: #efefef;
}
body,td,th {
	color: #333;
}
-->
</style>
     <!-- Este scrpit é usado para função de selecinar todos checkboxs  -->   
<scrpit type="text/javascrpit">   
$(document).ready(function(){
        $("#checkAll").click(function(){
                if( $(this).attr('checked') )
                        $("input[name='checkbox[]']").attr({checked: 'checked'});
                else
                        $("input[name='checkbox[]']").attr({checked: ''});
        });
}); 
</scrpit>
</head>

<body>
      <table border="0" cellpadding="3" cellspacing="3">
        <tr>
          <th><input type="checkbox" id="checkAll" />
          <span class="style1">ID</span></th>
          <th class="style1">Nome painel</th>
          <th class="style1">Link</th>
        </tr>
        <?php do { ?>
          <tr>
            <td><input type="checkbox" name="checkbox[]" value="id_produto_excluir" />
            <?php echo $row_ListaPainel['ma_id']; ?></td>
            <td><?php echo $row_ListaPainel['ma_label']; ?></td>
            <td><?php echo $row_ListaPainel['ma_value']; ?></td>
          </tr>
        <?php } while ($row_ListaPainel = mysql_fetch_assoc($ListaPainel)); ?>
        <tr>
          <th><form id="form1" name="form1" method="post" action="registros_delete.php">
            <input type="submit" name="submit" id="submit" value="Apagar" />
          </form></th>
          <th> </th>
          <th> </th>

        </tr>
    </table>
</body>
</html>
<?php
mysql_free_result($ListaPainel);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nick,

 

O valor dos checkbox está errado no formulário. Eles precisam ter o valor do ID conforme falei na postagem #24

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aff você não leu nenhum dos meus posts ne?!

registros_delete.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
	require_once('../conecao/conecao.php');

        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {
                if( is_array($_POST['checkbox']) )
                {
                        $ids = implode( ',', $_POST['checkbox'] );
                        $sql = " DELETE FROM `table` WHERE `id` IN ({$ids}) ";
                        
                        echo $sql;//depois comente essa linha
                        $query = mysql_query( $sql )or die( mysql_error() );
                }
                else
                        echo 'Você não selecionou nenhum check';
        }
?>
</body>
</html>

Qndo eu pedi 'estrutura da tabela', eu me referia ao banco de dados, e não ao HTML.

<table border="0" cellpadding="3" cellspacing="3">

          <form id="form1" name="form1" method="post" action="registros_delete.php">
		  <tr>
          <th><input type="checkbox" id="checkAll" />
          <span class="style1">ID</span></th>
          <th class="style1">Nome painel</th>
          <th class="style1">Link</th>
        </tr>
        <?php do { ?>
          <tr>
            <td><input type="checkbox" name="checkbox[]" value="<?php echo $row_ListaPainel['ma_id']; ?>" />
            <?php echo $row_ListaPainel['ma_id']; ?></td>
            <td><?php echo $row_ListaPainel['ma_label']; ?></td>
            <td><?php echo $row_ListaPainel['ma_value']; ?></td>
          </tr>
          <?php } while ($row_ListaPainel = mysql_fetch_assoc($ListaPainel)); ?>
            <input type="submit" name="submit" id="submit" value="Apagar" />
			
          </form>
          <th> </th>
          <th> </th>
    </table>

Isso ja devia estar resolvido em:

http://forum.imasters.com.br/index.php?/topic/379680-erro-em-propriedades-para-checkbox/page__view__findpost__p__1472562

 

Tenta ao menos estudar ou entender os scripts postados.

Estude HTML tb, não faz sentido os teus inputs ficarem fora do form

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo nenhum dado errado na minha conexão, tanto estrutura quanto as informações necessárias da conexão.

 

PHP conexão

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_ip = "...";
$database_ip = "...";
$username_ip = "...";
$password_ip = "...";
$ip = mysql_pconnect($hostname_ip, $username_ip, $password_ip) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

Menssagem que aparece exatamente na página:

DELETE FROM `pi_paineladmin` WHERE `ma_id` IN (,) No database selecte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Menssagem que aparece exatamente na página:

DELETE FROM `pi_paineladmin` WHERE `ma_id` IN (,) No database selecte

 

Seu formulário continua errado e não está passando as IDs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro:

 

DELETE FROM `pi_paineladmin` WHERE `ma_id` IN (,) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nick-PC, sugiro que leia o tópico de orientações para uma boa participação.

 

A solução do seu problema já foi postada mais de uma vez por vários colegas. Releia todos os posts e busque compreender as explicações e códigos passados.

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.