Jump to content


Photo

Repetir De Acordo Com Os Campos Do Form


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

#1 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 20/02/2007, 13:06

Pessoal, tenho um form com diversos campos checkbox com o mesmo nome sendo: item[]

Entao tenho o seguinte codigo para remover registros do mysql:

<?php

//inclui a configuraçao do bd
require('inc/config.php');
require('inc/Accounting.php.inc');
require('inc/classe.smtp.php');

$consulta_sql = "SELECT * FROM $tabela_clientes Where codigo='".$_POST[codigo]."'";
$resultado_sql = mysql_query($consulta_sql);
$num = mysql_num_rows($resultado_sql);

if($num != 0){
$sql = mysql_query("SELECT * FROM $tabela_dominios Where codigo_cliente='".$_POST[codigo]."'");
mysql_query("Delete From $tabela_clientes Where codigo='".$_POST[codigo]."'");
while ($dominios = mysql_fetch_array($sql)) {
mysql_query("Delete From $tabela_dominios Where codigo_cliente='".$_POST[codigo]."'");
}
 
$accesshash = '';

$sql2 = mysql_query("SELECT * FROM $tabela_dominios Where codigo_cliente='".$_POST[codigo]."'");
while ($linha = mysql_fetch_array($sql2)) {
$resultado = killacct('localhost','root',$accesshash,'0',$linha[4]);
if (!eregi("Ftp vhost passwords synced",$resultado)){

$dados_empresa = mysql_fetch_array(mysql_query("SELECT * FROM $tabela_empresa"));

$to = $dados_empresa[email];
$nameto = $dados_empresa[nome];
$from = $dados_empresa[servidor_smtp_usuario];
$namefrom = $dados_empresa[servidor_smtp_usuario];
$subject = "Log de erro";
authSendEmail($from, $namefrom, $to, $nameto, $subject, $resultado);

echo "<script>
	   alert(\"Não foi possível remover o domínio no servidor!\\n \\nUm relatório do erro foi enviado para o e-mail do sistema.\");
 window.location = 'index.php?pagina=Clientes';
 </script>";
} else {
echo "<script>
	   alert(\"Cliente removido com sucesso no sistema financeiro e domínio removido com sucesso no servidor!\");
 window.location = 'index.php?pagina=Clientes';
 </script>";
}
} 

}else {
echo "<script>
	   alert(\"Não foi possível remover o cliente no sistema financeiro!\");
 window.location = 'java script:history.back(-1)';
 </script>";
}

?>

Como posso fazer este codigo se repetir de acordo com os campos selecionados no form para que todos os registros sejam apagados?

Caso nao entendam, é que ao invez de operador poder deletar apenas um registro por vez, estou fazendo desta forma para que ele tenha a possibilidade de deletar o tanto de registro que ele quizer, para isso bastando apenas selecionar no form os registros que deseja remover...

Edição feita por: Layout WebHost, 20/02/2007, 13:07.


#2 Marcos Aurélio

Marcos Aurélio

    Das terras geladas da Sibéria

  • Usuários
  • 208 posts
  • Sexo:Masculino

Posted 20/02/2007, 14:17

Use foreach...

$id = $_POST["id"];

foreach($id as $value){
$q = mysql_query("DELETE... WHERE `id`='".$value."''");
}

Espero que resolva! (y)

#3 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 20/02/2007, 14:26

Tipo a pagina inteira tem que ser regarregada para cada registro entende, o nome dos campos é intem[]

Entao eu colocaria no começo do arquivo:

$item = $_POST["item[]"];

foreach($item as $value){
$q = mysql_query("DELETE... WHERE `id`='".$value."''");
}

Certo?

#4 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 20/02/2007, 16:38

$item = $_POST["item"];

foreach($item as $value){
$q = mysql_query("DELETE... WHERE `id`='".$value."''");
}

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#5 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 20/02/2007, 17:34

Caro, fiz assim:

<?php

//inclui a configuraçao do bd
require('inc/config.php');
require('inc/Accounting.php.inc');
require('inc/classe.smtp.php');

$codigo = $_POST["codigo"];

foreach($codigo as $value){

$consulta_sql = "SELECT * FROM $tabela_clientes Where codigo='".$value."'";
$resultado_sql = mysql_query($consulta_sql);
$num = mysql_num_rows($resultado_sql);

if($num != 0){
$sql = mysql_query("SELECT * FROM $tabela_dominios Where codigo_cliente='".$value."'");
mysql_query("Delete From $tabela_clientes Where codigo='".$value."'");
while ($dominios = mysql_fetch_array($sql)) {
mysql_query("Delete From $tabela_dominios Where codigo_cliente='".$value."'");
}
 
$accesshash = '';

$sql2 = mysql_query("SELECT * FROM $tabela_dominios Where codigo_cliente='".$value."'");
while ($linha = mysql_fetch_array($sql2)) {
$resultado = killacct('localhost','root',$accesshash,'0',$linha[4]);
if (!eregi("Ftp vhost passwords synced",$resultado)){

$dados_empresa = mysql_fetch_array(mysql_query("SELECT * FROM $tabela_empresa"));

$to = $dados_empresa[email];
$nameto = $dados_empresa[nome];
$from = $dados_empresa[servidor_smtp_usuario];
$namefrom = $dados_empresa[servidor_smtp_usuario];
$subject = "Log de erro";
authSendEmail($from, $namefrom, $to, $nameto, $subject, $resultado);

echo "<script>
	   alert(\"Não foi possível remover o domínio no servidor!\\n \\nUm relatório do erro foi enviado para o e-mail do sistema.\");
 window.location = 'index.php?pagina=Clientes';
 </script>";
} else {
echo "<script>
	   alert(\"Cliente removido com sucesso no sistema financeiro e domínio removido com sucesso no servidor!\");
 window.location = 'index.php?pagina=Clientes';
 </script>";
}
} 

}else {
echo "<script>
	   alert(\"Não foi possível remover o cliente no sistema financeiro!\");
 window.location = 'java script:history.back(-1)';
 </script>";
}
}
?>

Pode ver que esta logo no começo de tudo e la no final de tudo tem a } fechando, e esta gerando o seguinte erro:
Warning: Invalid argument supplied for foreach() in /home/site/public_html/Clientes.Remove.php on line 17

Linha 17: foreach($codigo as $value){

Dados vindos do form:
<input name='codigo' type='checkbox' value='16' />
<input name='codigo' type='checkbox' value='17' />




1 user(s) are reading this topic

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

IPB Skin By Virteq