Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
bioshock

Delete id {resolvido}

Recommended Posts

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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.