Jump to content

Elimina... mas não elimina?


Ivo Pereira
 Share

Recommended Posts

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

É 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 😁

Link to comment
Share on other sites

Como aconselhas?

Tenho assim para me orientar melhor no código 😛

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"

Link to comment
Share on other sites

@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'];
}
Link to comment
Share on other sites

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" 😄 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...

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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.

Link to comment
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
 Share

×
×
  • Create New...

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.