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

Sir Pereira

Elimina... mas não elimina?

Mensagens Recomendadas

Sir Pereira

Bom, já cá não postava há algum tempo :confused:

É o seguinte, tenho um formulário que ao clicar num botão submit me vai enviar para uma página que através de GET me vai buscar o id do item actual.

    echo "<table width='100%' border='1'>";
    echo "<tr>";
    echo "<td> </td>";
    echo "<td><strong>URL:</strong></td>";
    echo "<td><strong>Miniatura:</strong></td>";
    echo "<td><strong>Data:</strong></td>";
    echo "<td><strong>Título:</strong></td>";
    echo "<td><strong>Descrição:</strong></td>";
echo "<td><strong>Eliminar?</strong></td>";
    echo "</tr>";
    echo "<tr>";
$sql = mysql_query("SELECT ID FROM tv_noticias ORDER BY date");
for ($pass = 0; $pass < mysql_num_rows($sql); $pass++){
$query = mysql_query("SELECT ID FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1");	
$id_actual = mysql_result($query, 0);
echo '<td><input type="radio" name="selectedid"  value="'.mysql_result($query, 0).'"/></td>';	
$query = mysql_query("SELECT url FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1");
echo '<td><a href="'.mysql_result($query, 0).'" target="_blank">'.mysql_result($query, 0).'</a></td>';
$query = mysql_query("SELECT thumbnail FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1");
echo '<td><a onclick="alert(\''.mysql_result($query, 0).'\')" href="#"><img src="'.mysql_result($query, 0).'" height="60" width="94" alt="'.mysql_result($query, 0).'"  border="0" /></a></td>';
$query = mysql_query("SELECT date FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1");
echo '<td>'.mysql_result($query, 0).'</td>';
$query = mysql_query("SELECT title FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1");
echo '<td>'.mysql_result($query, 0).'</td>';
$query = mysql_query("SELECT description FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1");
echo '<td>'.mysql_result($query, 0).'</td>';
echo '<td>';
echo '<form action="eliminar.php?id='.$id_actual.'" method="POST">';
echo '<input type="submit" value="Eliminar?" name="btn_eliminar"></td>';
echo '</form>';
echo "</tr>";
}
echo "</tr></table>";

E no eliminar.php tenho:

<?php


require_once('./db/ligar.php');

$id_actual = $_GET['id'];

$query = mysql_query("DELETE FROM tv_noticias WHERE ID = '.$id_actual.'");
//$num_rows = mysql_num_rows($query);

if (mysql_affected_rows() < 0) {
echo "<br>";
echo "Ocorreu um erro ao eliminar da base de dados";
echo "<br>";
echo "<a href='javascript:history.back()'>Deseja voltar atrás?</a>";
echo "<br>";
} else {
echo "<br>";
echo "Campo eliminado com sucesso, deseja <a href='gestaodeconteudo.php'>voltar?</a>";
echo "<br>";
}

?> 

No entanto, ele no fim aparece-me que o campo foi eliminado com sucesso, mas na base de dados continua o campo... sugestões?

E sim, ele retorna o valor do GET.

Abraço :cheesygrin:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KiNgPiTo

Atirando uma hipótese ao ar sem analisar o código, se o id for int não precisas de ''... experimenta:

$query = mysql_query("DELETE FROM tv_noticias WHERE ID=$id_actual");

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

Mas em SQL, não. VARCHAR, por exemplo, precisa expressamente de "". Se não, acho que dá erro.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cyclop

Como aconselhas?

Tenho assim para me orientar melhor no código :P

Para começar, saber que podes fazer select de mais que um campo de cada vez e exportar para um objecto ou array....

Eu comecei à pouco tempo a programar em php e para mim, a melhor forma de organização (tendo em conta a minha pouca experiência) é usando a arquitectura MVC.

Podes ler melhor o que é aqui: http://pt.wikipedia.org/wiki/MVC

MVC Não tem nada a ver com o que EU PENSO que se está a falar aqui... está-se a falar de boas praticas, codigo limpo, organizado...


"Quando eu for grande quero ser como o Celso"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

@Sir Pereira,

Quando programares, imagina as coisas na cabeça. Numa só query consegues sacar um número teóricamente ínfimo de resultados, e de várias tabelas em simultâneo se for o caso.

$sql = mysql_query("SELECT ID, title FROM tv_noticias ORDER BY date");

while ($row = mysql_fetch_assoc($sql)) {
  // vai fazer o que se encontra aqui tantas vezes quantos resultados obtiver
  echo $row['ID'];
  echo $row['title'];
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nazgulled

MVC Não tem nada a ver com o que EU PENSO que se está a falar aqui... está-se a falar de boas praticas, codigo limpo, organizado...

Depende lol...

Visto que eu fui que comecei esta discussão, o meu comentário pode ser entendido assim:

Tanto echo... tantas queries...

Como disseste e bem, boas práticas, código limpo/organizado, boa programação, whatever...

all mixed up

MVC, ou "sort of" :D Depende um bocado da perspectiva de cada um. Se eles estivesse a usar o modelo MVC desde o inicio, de certeza que não tinha queries no meio de echos. Isso tanto pode estar relacionado com MVC como boas práticas de programação. Mais uma vez, depende...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nazgulled

Sinceramente, isso do padrão MVC confunde-me um bocado... Já tentei ler várias vezes a descrição e o significado de tudo, qual a ideia e bla bla e sei que existem 3 partes, o modelo, vista e controlo. E continuo a achar confuso. O MVC a mim não me diz muito e eu não faça ideia se o uso ou não.

Eu separo o código do design. Os meus ficheiros .php evitam ao máximo qualquer tipo de código HTML/CSS/JS. É isso que eu faço desde há muito tempo, se é o padrão MVC ou não, não sei nem me interessa, o que me interessa é que cada macaco está no seu galho.

Mas pronto, demasiado off-topic...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nazgulled

Sim, já no outro tópico te tinha apontado para o artigo que cheguei a escrever para a revista com um simples sistema de templates.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

MVC é mais que separar código de design.

Teóricamente, o objectivo é separares a lógica de negócio (business logic) da lógica de controle de resultados (controllers) e do aspecto visual final. Cada request chama um controller e um method (classe e função, que é um controller) e a partir dai pedes as views que queres e associas aos Models que queres, só isto. Todos os models tratam da transformação da informação (muita gente associa Models a ORM, e pode ser usada assim, mas não é implícito), e todas as views tratam do markup e localização de pequenos blocos de php com variáveis passadas com a informação necessária dos Models. O controller aqui é só o pombo correio entre elas.

Agora, depende da framework que se mexe .. Há umas que estão especialmente bem concebidas, como é o caso do Kohana, e outras que fazem um uso mais básico dessas tecnologias. E depende também da compreensão das pessoas sobre esses assuntos.

Já dizia o outro : podes ter uma faca de cozinha e o adversário uma espada gigante, mas o que interessa é quem a maneja e o que faz com ela, não a arma em si.

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.