Boa noite pessoal, estou com um problema referente é um algoritmo de HTML... É o seguinte, preciso criar uma tabela utilizando HTML e cada coluna vai ser mostrado um conteúdo gerado pelo array, até ai tudo bem, o problema é que preciso criar um botão para deletar o item em questão do banco de dados, e ai é que ta... não sei como faço para salvar o id da coluna que foi gerada para depois executar o comando sql utilizando o PHP.
Abaixo segue o código para análise:
<?php
require_once("../bd.php"
?>
<?php
session_start();
if(!isset($_SESSION["nome"]) || !isset($_SESSION["senha"])){
}else{
header("Location: ../login.html"
exit;
}
?>
<?php
$query = sprintf("SELECT conteudo, autor, titulo, pagina, id FROM atualizacoes ORDER BY id DESC"
$dados = mysql_query($query, $con) or die(mysql_error());
$linha = mysql_fetch_assoc($dados);
$total = mysql_num_rows($dados);
?>
<!DOCTYPE html>
<html>
<head lang="pt-BR">
<link href="../../css/style.css" rel="stylesheet">
<link href="../../css/bootstrapnonrow.css" rel="stylesheet">
<script type="text/javascript">
function voltar()
{
location.href="../logout.php"
}
</script>
<meta charset="UTF-8">
</head>
<body>
<div class="row ">
<div class="col-md-8 col-md-offset-2">
<form>
<h2 style="color: white">Atualizando blog</h2>
<table class="tabelaconteudo">
<?php
if($total>0){
do{
?>
<tr><td><?= $linha['titulo']?></td><td><?= $linha['pagina'] ?></td><td><?= $linha['autor'] ?></td><td><input type="submit" class="btn-cad" style="color: white" value="Apagar"></td></tr>
<?php
}while ($linha = mysql_fetch_assoc($dados));
}
?>
</table>
</form>
</div>
</div>
</body>
</html>
Vlw pessoal!! Aguardo pelo socorro!!
- Home
- >
- Fórum
- >
- Profissional
- >
- Programação, Sc...
- >
- Array em tabela HTML
É muito simples meu amigo.
Você só precisa utilizar o seu input do mesmo modo que faria com qualquer outro.
Ou seja: Basta conceder a ele um atributo "name".
Fazendo desta maneira:[Code=php][/code]
Percebe que foram removidos os atributos class e style porque são desnecessários.
Por serem muitos, é mais eficiente referenciá-los através de uma regra CSS, adicionando as componentes que constariam na classe:[code=css][/code]
Supondo que o ID seja '1234', o parâmetro recebido será 'ref_1234=Apagar' (GET) ou 'ref_1234:Apagar' (POST).
- Para utilizá-lo basta coletar apenas os dígitos ou eliminar os 4 primeiros carateres da chave (key). Você escolhe.
Boa codificação.
Bom dia, obrigado pela atenção, entendi perfeitamente como salvar o id no name do input, porém não consegui entender como vou salvar somente os números na variavel da pagina php. Procurei alguns scripts porém como o valor name será : 'ref_...', não sei como utilizarei ele na próxima página. Se poder me dar mais uma ajuda agradeço!!
Faço assim, não sei se é a melhor forma:
[php]
<?php foreach($itens->buscarTodos() as $id => $item): ?>
<?php echo "Deletar"; ?>
<?php endforeach; ?>
[/php]
Trato os parâmetros na inicialização.
Coragem não é ausência de medo e sim o controle dele.
Linux em casa!
Windows 10, na empresa!
Agora: Android no bolso!
O Shura16 mostrou como fazer usando links.
Os desenvolvedores aqui utilizam ambos: forms e links.
Cada um deles têm as suas peculiaridades. O uso dos links é inimigo da privacidade nas informações e isto pode ser um grande problema de segurança, dentre outras situações.
Quanto ao uso do parâmetro em questão, existem diversas ferramentas que se podem aplicar. Por exemplo a substr(), a filter_sanitize_number_int, as expressões regulares, a preg_match_all(), intval(preg_replace())... etc... etc.
Por isso eu disse: Você escolhe.
<?php
error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);
$id=$_POST['ref_$linha']; // AQUI É ONDE ENCONTRO A DIFICULDADE, POR NÃO SABER OQUE COLOCO AQUI :/
$restid = substr($id, 1, 4);
$sql = mysql_query("DELETE FROM atualizacoes WHERE id ==$restid");
?>
Calma, você chega lá...
É claro que perguntar é o caminho mais fácil, mas eu o aconselho a debruçar sobre as apostilas o quanto antes; Senão vai depender de ajuda para sempre!
- Vou postar aqui um exemplo de como deve implementar. É seu trabalho fazer as adaptações necessárias depois, estamos combinados?
Primeiro criamos um objeto $_POST fictício para teste, então a partir dele extrairemos somente aquilo que de fato importa:
[code=php]<?php
$result = array();
$_POST = array ('ID'=>'14', 'nome_campo'=>'vitoria', 'qqCoisa'=>'algo', 'ref_1111'=>'Apagar', 'ref_1122'=>'Apagar', 'ref_1133'=>'Apagar', 'ref_1144'=>'Apagar');
foreach ($_POST as $param_key => $param_value) {
if ( $param_value == 'Apagar' ) array_push ($result, substr ($param_key, 4) );
}
print_r($result);
?>[/code]Desse script obtemos vetor "$result", que é:Array
(
[0] => 1111
[1] => 1122
[2] => 1133
[3] => 1144
)
Ou seja:
$result = ( 1111, 1122, 1133, 1144 ) // Agora você tem os IDs que tanto precisa.
Muito Obrigado Cara!! A partir dai já consigo me virar sozinho.... Pode deixar que ainda tenho muito oque estudar huauhaua e também farei todas alterações necessárias pode deixar! Tava meio desesperado atras disso pois tenho um trabalho para entregar em 2 semanas e não consegui achar em lugar algum como eu faria isso..
Vlw mesmo manoo!!
Pessoal, consegui resolver o problema de uma maneira mais simples, simplesmente toda vez que gero uma linha da tabela também gero um form novo com um input hidden que recebe o atributo value conforme o id que preciso.
Dessa maneira:
[php]<?php
if($total>0){
do{
?>
// AQUI CONSEGUI O NAME FIXO QUE DESEJAVA
<?= $linha['titulo']?>
<?= $linha['pagina'] ?>
<?= $linha['autor'] ?>
<?php
}while ($linha = mysql_fetch_assoc($dados));
}
?>[/php]
Ainda assim agradeço pela ajuda de todos vocês! Vlw mesmo pessoal!!
O problema é que deste modo só é possível salvar individualmente.
Diga adeus para a persistência em lote.