Jump to content
Sign in to follow this  
Zero Minamoto

Sistema para editar uma postagem via formulário

Recommended Posts

Então, criei um sistema capaz de fazer postagens novas por um formulário, mas agora estou com problemas para editar essas postagens. É assim, crio uma página em que o usuário principal vê as postagens já feitas(mainadmin.php) e aí clica num link do lado dela que o leva para um formulário novo(edita.php). Para que seja identificado em que postagem o usuário clicou, eu usei uma variável na mainadmin que imprime o id ao lado da URL do edita.php. EX: localhost/sistema/edita.php?id=1. Nisso, o formulário deveria editar a postagem de id 1 do banco de dados. MAS, sempre que eu preencho o formulário e clico no botão de submit, a URL fica doida, bem assim: localhost/sistema/edita.php?id=%27$id%27. Em edita.php criei um $_GET para pegar a id, mas tenho certeza que fiz algo errado no meio do caminho. Sou meio novato nisso, então peço desculpas antecipadas. Aqui estão as páginas:

 

edita.php

<?php
session_start();

if(isset($_SESSION['mainuser'])) {
	$mainuser = $_SESSION['mainuser'];
	if(isset($_POST['atualizar'])) {
		$nid 		= $_GET['id'];
		$ntitle 	= $_POST['ntitulo'];
		$nautor 	= $_POST['nautor'];
		$ncontent 	= $_POST['nconteudo'];

		if(isset($nid)) {
		include_once("connection.php");
		$busca = "SELECT * FROM posts WHERE id='$nid'";
		$sql = "UPDATE posts SET titulo='$ntitle', autor='$nautor', conteudo='$ncontent' WHERE id='$busca'";
		mysqli_query($conn, $sql);
	}
}
}
else {
	header('Location: login.php');
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
	<meta charset="UTF-8"/>
	<title>Editar Postagem</title>
</head>

<body>
<form method="post" action="edita.php?id='$id'">
	Título: <input type="text" name="ntitulo"/><br/><br/>
	Autor: <input type="text" name="nautor"/><br/><br/>
	Conteúdo: <textarea name="nconteudo"></textarea><br/><br/>

	<input type="submit" name="atualizar" value="POSTAR"/>
</form>
</body>
</html>

mainadmin.php

<?php

?>
<!DOCTYPE html>
<html lang="pt-br">

<head>
	<meta charset="UTF-8"/> 
	<title>Página Principal</title>
</head>

<body>
<h1>Postagens:</h1>
<?php
include_once("connection.php");

$sql = "SELECT * FROM posts ORDER BY id";
$result = mysqli_query($conn, $sql);

while($row = mysqli_fetch_array($result)) {
	$id = $row['id'];
	$title = $row['titulo'];
	$autor = $row['autor'];
	$content = $row['conteudo'];
?>
<b><?php echo $title; ?></b> - <small><?php echo $autor . "-" . $id; ?></small><p><?php echo $content . "<a href='edita.php?id=$id'>Editar Postagem</a> "; ?> </p><hr/>
<?php
}
?>
<a href="admin.php">Admin</a><br/>
<a href="index.php">Home Page</a><br/>
<a href="logout.php">Logout</a>
</body>
</html>

Share this post


Link to post
Share on other sites

Amigo,eu acho que isso está acontecendo devido a um espaço dentro do $id.

 

ou seja,você está mandando: site.com/id= 1.

Verifique o valor da variável.

Share this post


Link to post
Share on other sites

Amigo,eu acho que isso está acontecendo devido a um espaço dentro do $id.

 

ou seja,você está mandando: site.com/id= 1.

Verifique o valor da variável.

Pensei isso de início, mas não é. D:

Share this post


Link to post
Share on other sites
Guest

o bom seria que o form que vc usa pra fazer o cadastro também fazer a edição.

coloque um input tipo hidden com o nome "id" e valor " " e verifique se ele está vazio, se estiver vc cadastra.

Se ele estiver preenchido vc atualiza.


<?PHP
//resgata do banco quando existir get id
if(isset($_GET['id_post'])){
    $id_post ='id do banco';
    $meu_texto = 'texto do banco';
}else{
    $id_post =null;
    $meu_texto = null;
}

?>

<form>
<input type="hidden" name="id_post" value="<?=$id_post;?>" />
<input type="text" name="meu_texto" value="<?=$meu_texto;?>" />
</form>



//GRAVAÇÃO DOS DADOS
<?php

if(empty($_POST['id_post'])){
    //insere
}else{
    //atualiza
}
?>

Share this post


Link to post
Share on other sites

 

o bom seria que o form que você usa pra fazer o cadastro também fazer a edição.

coloque um input tipo hidden com o nome "id" e valor " " e verifique se ele está vazio, se estiver você cadastra.

Se ele estiver preenchido você atualiza.


<?PHP
//resgata do banco quando existir get id
if(isset($_GET['id_post'])){
    $id_post ='id do banco';
    $meu_texto = 'texto do banco';
}else{
    $id_post =null;
    $meu_texto = null;
}

?>

<form>
<input type="hidden" name="id_post" value="<?=$id_post;?>" />
<input type="text" name="meu_texto" value="<?=$meu_texto;?>" />
</form>



//GRAVAÇÃO DOS DADOS
<?php

if(empty($_POST['id_post'])){
    //insere
}else{
    //atualiza
}
?>

 

 

o bom seria que o form que você usa pra fazer o cadastro também fazer a edição.

coloque um input tipo hidden com o nome "id" e valor " " e verifique se ele está vazio, se estiver você cadastra.

Se ele estiver preenchido você atualiza.


<?PHP
//resgata do banco quando existir get id
if(isset($_GET['id_post'])){
    $id_post ='id do banco';
    $meu_texto = 'texto do banco';
}else{
    $id_post =null;
    $meu_texto = null;
}

?>

<form>
<input type="hidden" name="id_post" value="<?=$id_post;?>" />
<input type="text" name="meu_texto" value="<?=$meu_texto;?>" />
</form>



//GRAVAÇÃO DOS DADOS
<?php

if(empty($_POST['id_post'])){
    //insere
}else{
    //atualiza
}
?>

Eu sou meio burrinho, então deixa eu ver se entendi direito.

Ah, eu sempre faço cada coisa em um arquivo diferente porque tenho a maldita mania de me perder no meu próprio código.

Com esse campo hidden, o form vai enviar junto a id da postagem que eu selecionei? Mas nesse caso, para que os

$id_post ='id do banco';

$meu_texto = 'texto do banco';

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  

  • Similar Content

    • By heenrique
      Boa Noite
       
      amigos tenho um select no qual me retorna o seguinte 
      SELECT * FROM sis_suporte WHERE tecnico = '1' AND abertura < '2019-10-30'; +----+--------------------------------------+------------+---------------------+---------------------+-------+---------+----------------+-----------------------------+------------------+----------------------------+---------------------+------------+--------------+-------+---------+-------------+------------------------------------------------------------------+ | id | uuid_suporte | assunto | abertura | fechamento | email | status | chamado | nome | login | atendente | visita | prioridade | ramal | reply | tecnico | login_atend | motivo_fechar | +----+--------------------------------------+------------+---------------------+---------------------+-------+---------+----------------+-----------------------------+------------------+----------------------------+---------------------+------------+--------------+-------+---------+-------------+------------------------------------------------------------------+ | 36 | 1901294b-80e6-4389-9059-fa090c09e382 | Outros | 2019-09-14 19:27:42 | 2019-10-17 19:35:20 | NULL | aberto | 14091919272653 | Alex Ramos dos Santos | alex.santos | Letícia Paula de Oliveira | 2019-10-17 16:27:15 | normal | SAO PAULO | nao | 1 | leticia | TÉCNICO HENRIQUE FINALIZOU A ORDEM: CLIENTE BLOQUEADO | | 37 | af8da3e7-9dbc-45b9-945b-d50cd45d9ea6 | Outros | 2019-09-14 19:37:13 | 2019-10-04 21:11:25 | NULL | fechado | 14091919370623 | Alexsandro Santos Braz | alesysandro.braz | Letícia Paula de Oliveira | 2019-10-04 16:37:15 | normal | SAO PAULO | nao | 1 | leticia | TÉCNICO HENRIQUE FINALIZOU A ORDEM: | | 39 | 2b03e9d4-50ca-4713-8149-88fe083fb9d9 | Instalacao | 2019-09-16 17:00:22 | 2019-10-03 22:38:23 | NULL | fechado | 16091916593665 | Henrique Gabriel de Almeida | teste | Letícia Paula de Oliveira | 2019-10-03 08:00:15 | normal | POUSO ALEGRE | sim | 1 | leticia | TÉCNICO HENRIQUE FINALIZOU A ORDEM: QWE | | 40 | b2c0fc23-0a5c-46ae-a8b8-a8641b1d53c4 | Outros | 2019-10-03 23:21:22 | 2019-10-03 23:36:51 | NULL | fechado | 03101923210987 | Henrique Gabriel de Almeida | teste | sistema | 2019-10-03 14:21:15 | normal | POUSO ALEGRE | nao | 1 | admin | TÉCNICO HENRIQUE FINALIZOU A ORDEM: RELIGUEI A FONTE DO CLIENTE | | 41 | e9aaf792-56c6-4fe1-b8c3-aa51338f65d1 | Outros | 2019-10-03 23:23:02 | 2019-10-03 23:46:01 | NULL | fechado | 03101923225491 | Cintia Rocha Vaz | cintia.vaz | sistema | 2019-10-03 17:22:15 | normal | SAO PAULO | nao | 1 | admin | TÉCNICO HENRIQUE FINALIZOU A ORDEM: 12 | +----+--------------------------------------+------------+---------------------+---------------------+-------+---------+----------------+-----------------------------+------------------+----------------------------+---------------------+------------+--------------+-------+---------+-------------+------------------------------------------------------------------+ 5 rows in set (0.00 sec) e quando imprimo sai um por um, gostaria de agrupar por data de abertura ex.
       
      2019-09-14
      Alex Ramos
      Alexsandro
       
      2019-09-16
      Henrique
       
      2019-10-03
      Henrique
      Cintia
       
      como agrupar isso em php,
       
      esse e o cod onde eu imprimo
       
      <?php while($dados = mysqli_fetch_assoc($resultado_os)){ if ($dados['status'] == 'aberto'){ ?> <div class='row'> <div class='col-md-12'> <a href='os.php?os=<?php echo $dados['chamado']; ?>'> <div style='box-shadow: 3px 3px 0px 1px rgba(0,0,0,0.1);' class='info-box'> <span class='info-box-icon1 bg-agua'><i style='padding-top: 35%;' class='ion ion-ios-gear-outline'></i></span> <div class='info-box-content'> <span class='info-box-text'><b>ABERTA</b></span> <span class='info-box-text'><b>O.S:</b><?php echo $dados['chamado']; ?></span> <span class='info-box-text'><b>NOME:</b><?php echo utf8_encode($dados['nome']); ?></span> <span class='info-box-text'><b>TIPO:</b><?php echo $dados['assunto']; ?></span> <span class='info-box-text'><b>DATA/HORA:</b><?php echo (new DateTime($dados['visita']))->format('d/m/Y - H:i'); ?></span> </a> </div> </div> <?php } if ($dados['status'] == 'fechado'){ ?> <div class='row'> <div class='col-md-12'> <a href='os.php?os=<?php echo $dados['chamado']; ?>'> <div style='box-shadow: 3px 3px 0px 1px rgba(0,0,0,0.1);' class='info-box'> <span class='info-box-icon1 bg-red'><i style='padding-top: 35%;' class="fa fa-check" aria-hidden="true"></i></span> <div class='info-box-content'> <span class='info-box-text'><b>FINALIZADA</b></span> <span class='info-box-text'><b>O.S:</b><?php echo $dados['chamado']; ?></span> <span class='info-box-text'><b>NOME:</b><?php echo utf8_encode($dados['nome']); ?></span> <span class='info-box-text'><b>TIPO:</b><?php echo $dados['assunto']; ?></span> <span class='info-box-text'><b>DATA/HORA:</b><?php echo (new DateTime($dados['fechamento']))->format('d/m/Y - H:i'); ?></span> </a> </div> </div> <?php } } ?> </div> </div> </div> </section> </div>  
    • By avelar.avelar
      Boa Tarde galera, 
       
      Preciso criar um Test de Recursividade na mesma tabela:
       
      Tabela: Biblioteca
      Campos:
      ID
      Titulo
      Descricao
      Biblioteca-ID(Foreign Key)
       
      Obrigado
    • By LRDSILVA3
      Pessoal Boa Tarde ,Tudo certo?
      Estou com um projeto para aprendizagem (já que só tenho conhecimentos de css e html) e upgrade da firma onde trabalho e não estou conseguindo salvar os valores do formulário no banco de dados,a conexão é feita porem salva todos os valores como null.
      <?php
      $servername = "192.168.1.109";
      $database = "cadastrokm";
      $username = "teste";
      $password = "123456";
      // Create connection
      $conn = mysqli_connect($servername, $username, $password, $database);
      // Check connection
      if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
      }
       
      echo "Connected successfully";
      $funcionarioKm = isset( $_POST['funcionarioKm']); 
          $veiculoKm = isset($_POST['veiculoKm']);
          $kmInicial = isset($_POST['kmInicial']);
          $kmFinal = isset($_POST['kmFinal']);
       
      $sql = "INSERT INTO km (funcionarioKm,veiculoKm,kmInicial,kmFinal) 
          VALUES ('$funcionarioKm','$veiculoKm','$kmInicial',
          '$kmFinal')";
      if (mysqli_query($conn, $sql)) {
            echo "New record created successfully";
      } else {
            echo "Error: " . $sql . "<br>" . mysqli_error($conn);
      }
      mysqli_close($conn);
      ?>
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
      <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

      </head>
      <body>
        
          <div class=container>
      <section>
          <!-- Página de Cadastro de KM -->
          <h1>Cadastro de Km</h1>
          <hr><br><br>
          <form method="post" action="conexao.php">
          <p class="font-weight-bold">Favor Selecione seu Nome:</p>
                <select id="funcionarioKm"  name="funcionarioKm"required autofocus>
                    <option>Motorista</option>
                    <option>Almir</option>
                           <option>Maykon</option>
                                      <option>Jorge</option>    
                                  </select>
      </br></br>
                <p class="font-weight-bold">Favor Selecione o Veiculo:</p>
                <select id="veiculoKm" value="veiculoKm " name="veiculoKm"required>
                    <option>Veiculo</option>
                    <option>L200</option>
                           <option>Strada 01</option>
                                      <option>Strada 02</option>    
                                      <option>Caminhão 01</option>    
                                  </select> 
       </br></br>
                 <label for="litros"><p class="font-weight-bold">Informe a Quilometragem Inicial:</p></label>
              <input type="number" id="kmInicial" name="kmInicial" required/>
      </br></br>
              <label for="litros"><p class="font-weight-bold">Informe a Quilometragem Final:</p></label>
              <input type="number" id="kmFinal" name="kmFinal" required />
      </br></br>
              <input type="submit" value="Salvar"    class="btn btn-primary btn-md">
              <input type="reset" value="Limpar"class="btn btn-primary btn-md" >
              <br><br>
      </form>
      </section>
      </div>
      </body>
      </html>
       

       
       
    • By proflupin
      criei uma página que busca alguns dados no BD e retornar em forma de collapse. Como existe um WHILE executando o collapse, ele sempre o executa com o mesmo ID, ou seja, se eu tiver 20 collapse, todos vão ser abertos ao clicar no primeiro.
      A dúvida é, como eu posso criar um novo ID para o collapse a cada loop do While?
      Código:
       
      <?php while($result_inners = mysqli_fetch_object($result_inner)){ ?> <div class="card-footer "> <a class="text-muted" data-toggle="collapse" href="#collapse1" role="button" aria-expanded="false" aria-controls="collapseExample"> <i class="fas fa-comment-alt"></i> <?php if(!empty($result_inners->nome_completo)) echo $result_inners->nome_completo . " respondeu..."; else echo "Aguardando resposta do técnico." ?> </a> <div class="collapse " id="collapse1"> <div class="bg-white mt-2 p-2"> <?php echo nl2br($result_inners->mensagem) ?> </div> <span style="color: #6c757d; float: right;"><?php echo date('d/m/Y H:i', strtotime($result_inners->data_hora)) ?></span> </div> </div> <?php } ?>  
    • By elielton
      Preciso usar um regex 
      qual expressão reconhece: 03-190325
       
       
      Alguém pode me ajudar?
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.