Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

Delete id {resolvido}

Mensagens Recomendadas

bioshock

Bem, eu creio que o problema esteja mesmo na função do Javascript. Quando eu clico para eliminar o registo, ele elimina-me sempre o último.

Eis o código:

$result = mysql_query( "SELECT * FROM categorias ORDER by id desc LIMIT $startrow, 5")or die("SELECT Error: ");


// criar a tabela 
echo "<table border='1' bordercolor='#99CC33'>";
echo "<tr align='center'> <td><h4>ID</h4></th> <th><h4>Nome categoria</h4></th><th><h4>Eliminar</h4></th> <th><h4>Editar </th></h4></tr>";

// Vai buscar todas as linhas até não haver mais
while($row = mysql_fetch_array( $result )) {

// Mostra os detalhas nas linhas
$id = $row['id'];
$nome = $row['nome'];

// cria as linhas
echo "<tr >";
echo "<th width=100>$id<br></th>";
echo "<th width=100>$nome<br></th>";
echo "<th <input type='button' onclick='confirmation()' value='Eliminar'></th>";
echo "<th <input type='button' onclick='goToEdit()' value='Editar'></th>";
echo "</tr>";
} 

// Vamos buscar o número de linhas existentes na database
$totalRows = mysql_num_rows($result);
echo "<h1>Existe(m): " . $totalRows . " registo(s)<h1>";
echo "</table>";

Função Javascript:

<script>

function confirmation() {
var answer = confirm("Deseja eliminar a categoria?")
if (answer){
	window.location = "eliminarcategorias.php?id=<?php echo $id;?>";
}
else{
	window.location = "mostrarcategorias.php";
}
}
</script>
<script>
function goToEdit(){
window.location = "editarcategorias.php?id=<?php echo $id;?>";
}
</script>

Código do eliminarcategorias.php:

<?php 
mysql_connect("localhost", "root", "");
mysql_select_db("teste2");
mysql_query("DELETE FROM categorias WHERE id =".$_GET['id']);
echo "<script>alert('Eliminado com sucesso!'); window.location=\"mostrarcategorias.php\"</script>";
?>

Alguém sabe do que se pode tratar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Porque isso não está no loop do fecth_array. A maneira ideal de fazeres isso é alterares a tua função javascript para receber um argumento, o id a eliminar, e o passares quando chamas essa função, ex:

while ($row = mysql_fecth_array($result)) {
  ...
  echo  "<th <input type='button' onclick='confirmation($id)' value='Eliminar'></th>";
  echo "<th <input type='button' onclick='goToEdit($id)' value='Editar'></th>";
  ...
}

E a tua função confirmation de javascript ficaria:

function  confirmation(id) {
        var answer = confirm("Deseja eliminar a categoria?")
        if (answer){
                window.location = "eliminarcategorias.php?id=" + id;
        }
        else{
                window.location = "mostrarcategorias.php";
        }
}

Para a outra função de javascript é semelhante.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

EDIT: ya, o que o softclean disse...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Pronto, era mesmo isso que estava a falhar. O ciclo do fetch array não estava a ser atribuido no javascript. Obrigado aos dois, está a funcionar!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.