Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

INSERT OU UPDATE PHP

03-10-2015 18:36

boa noite fiz um script que quando apresenta na url um id de um artigo que quero editar mostra-o nos campos do form:

if(isset($_REQUEST['id_publicacao']))//SE VIER UM ID PELA URL... { $id_publicacao = $_REQUEST['id_publicacao']; //vai buscar os dados da publicação á base dados correspondente a esse id_publicacao e mostra-os! $buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." "); $mostrar = mysqli_fetch_array($buscar_dados); $titulo = $mostrar['titulo']; $mensagem = $mostrar['mensagem']; } if(isset($_REQUEST['botao_editar'])) { $alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$_REQUEST['text_titulo']."' , mensagem = '".$_REQUEST['text_mensagem']."' WHERE id_publicacao = ".$id_publicacao." "); } ?> <!--formulario para criar/editar publicação--> <form class="form_publicacao" method="post" action="?"> <h3>publicação</h3> <hr /> <br /> <label for="title">Titulo</label> <br /> <input type="text" id="title" name="text_titulo" size="50" value="<?php echo $titulo ?>" /> <br /> <br /> <label for="msg">Mensagem</label> <br /> <textarea id="msg" name="text_mensagem" rows="10" cols="97"><?php echo $mensagem ?></textarea> <br /> <br /> <input type="hidden" name="id_utilizador" value="<?php echo $_SESSION['id_utilizador'] ?>" /> <input type="hidden" name="id_publicacao" value="<?php echo $id_publicacao ?>" /> <input type="submit" name="botao_editar" value="Gravar" /> <br /> <br /> <a href="forum.php">voltar</a> </form>

POREM....QUANDO FAÇO UM SCRIPT DE QUE SENÃO VIER NADA PELA URL, OS CAMPOS DO FORM FICAM VAZIOS PARA PODER INSERIR UM NOVO REGISTO APARECE SEMPRE UMA MENSAGEM DE ERRO RELATIVO Á LINHA ONDE TENHO O SCRIPT:

$mostrar = mysqli_fetch_array($buscar_dados);

COMO PODEREI SOLUCIONAR ISTO?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

03-10-2015 20:53

Pelo que entendi o usuário só pode ver essa página em duas condições:

- Se passar um id pela URL;
- Se clicar no botão atualizar;

Então sua base deve estar assim:

<?php $id_publicacao = @$_GET['id_publicacao']; if(isset($id_publicacao)) { //SE VIER UM ID PELA URL... echo "editar"; // CONSULTA.. } elseif(isset($_POST['botao_editar'])) { echo "atualizar"; // UPDATE.. } else { echo "nada"; // AQUI VOCÊ PODE COLOCAR UM AVISO OU REDIRECIONAR O USUÁRIO exit; } ?>

Se vier o "id" pelo link você adiciona usa consulta e captura as variáveis.
Se o usuário clicar no botão editar, vai fazer o update.
E se nenhuma das condições acima for feita você pode mandar o usuário para outra página.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

04-10-2015 13:55

a ideia é usar o mesmo formulario para editar um post se vier um id pela url...ou entao o proprio formulario ficar vazio para fazer um insert e nao um update
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

04-10-2015 17:55

Testa esse exemplo

<?php $id_publicacao = @$_GET['id_publicacao']; $titulo = ""; $mensagem = ""; if(isset($id_publicacao)) { //SE VIER UM ID PELA URL... echo "editar"; // CONSULTA.. // ABAIXO SIMULANDO OS VALORES QUE VEM DO BD $titulo.= "aa"; $mensagem.= "bb"; } elseif(isset($_POST['botao_editar'])) { echo "atualizar"; // UPDATE.. } elseif(isset($_POST['botao_salvar'])) { echo "inserir"; // INSERT } ?> <!--formulario para criar/editar publicação--> <form class="form_publicacao" method="post" action="?"> <h3>publicação</h3> <hr /> <br /> <label for="title">Titulo</label> <br /> <input type="text" id="title" name="text_titulo" size="50" value="<?php echo $titulo ?>" /> <br /> <br /> <label for="msg">Mensagem</label> <br /> <textarea id="msg" name="text_mensagem" rows="10" cols="97"><?php echo $mensagem ?></textarea> <br /> <br /> <input type="hidden" name="id_utilizador" value="<?php echo $_SESSION['id_utilizador'] ?>" /> <input type="hidden" name="id_publicacao" value="<?php echo $id_publicacao ?>" /> <?php if(isset($id_publicacao)) { ?> <input type="submit" name="botao_editar" value="Gravar" /> <br /> <br /> <?php } else { ?> <input type="submit" name="botao_salvar" value="Salvar" /> <br /> <br /> <?php } ?> <a href="forum.php">voltar</a> </form>

1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

08-10-2015 10:18

faz o update mas nao insere um novo registo......
ps: todas as mensagens posteriores pode esquecer....

ja consegui po-lo a fazer o update.....porem pelo script que me aconselhou em que se vier um id pela url, mostra o botao "editar" , onde faço o update, (o qual esta a funcionar direitinho !!!! ) :)

mas quando clico no botao de adicionar novo post , em que nao vem nenhum id pela url e que devia aparecer somente o botao "gravar" , aí evia fazer um insert......mas nao faz nenhum registo novo , somente altera oque ja la tinha!!!! :(


outro pormenor , venha um id ou nao pela url, aparece sempre o botao "gravar".....

sei que esta perto a solução.......poderia me ajudar WEB?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

08-10-2015 11:31

Qual o código que está usando para o insert?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

08-10-2015 11:36


<?php $id_publicacao = @$_GET['id_publicacao']; $titulo = ""; $mensagem = ""; if(isset($id_publicacao))//se vier um id pela url... { //vai buscar os dados da publicação á base dados correspondente a esse id_publicacao e mostra-os! $buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." "); $mostrar = mysqli_fetch_array($buscar_dados); $titulo = $mostrar['titulo']; $mensagem = $mostrar['mensagem']; } elseif (isset($_POST['botao_editar'])) { $alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$_REQUEST['text_titulo']."' , mensagem = '".$_REQUEST['text_mensagem']."' WHERE id_publicacao = ".$id_publicacao." "); echo'<style type="text/css"> .form_publicacao{ display:none; } </style>'; echo'<div class="login_sucesso"> Publicação alterada com sucesso <br> <a href="forum.php">voltar</a> </div>'; exit; } else if (isset($_POST['botao_gravar'])) { $inserir = $ligacao->query("INSERT INTO publicacoes(titulo,mensagem,data) VALUES('$titulo','$mensagem',NOW(), ) WHERE id_utilizador = ".$_SESSION['id_utilizador']." "); echo'<style type="text/css"> .form_publicacao{ display:none; } </style>'; echo'<div class="login_sucesso"> Publicação gravada com sucesso <br> <a href="forum.php">voltar</a> </div>'; exit; } ?> <!--formulario para criar/editar publicação--> <form class="form_publicacao" method="post" action="?"> <h3>publicação</h3> <hr /> <br /> <label for="title">Titulo</label> <br /> <input type="text" id="title" name="text_titulo" size="50" value="<?php echo $titulo ?>" /> <br /> <br /> <label for="msg">Mensagem</label> <br /> <textarea id="msg" name="text_mensagem" rows="10" cols="97"><?php echo $mensagem ?></textarea> <br /> <br /> <input type="hidden" name="id_utilizador" value="<?php echo $_SESSION['id_utilizador'] ?>" /> <input type="hidden" name="id_publicacao" value="<?php echo $id_publicacao ?>" /> <?php if(isset($id_publicacao)) { ?> <input type="submit" name="botao_editar" value="editar" /> <?php } else { ?> <input type="submit" name="botao_gravar" value="gravar" /> <?php } ?> <a href="forum.php">voltar</a> </form>title

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

08-10-2015 11:38

nem o update funciona...mas o codigo esta bem...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

08-10-2015 14:19

Verifica qual erro retorna usando o or die

$alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$_REQUEST['text_titulo']."' , mensagem = '".$_REQUEST['text_mensagem']."' WHERE id_publicacao = ".$id_publicacao." ") or die(mysql_error()); // e $inserir = $ligacao->query("INSERT INTO publicacoes(titulo,mensagem,data) VALUES('$titulo','$mensagem',NOW(), ) WHERE id_utilizador = ".$_SESSION['id_utilizador']." ") or die(mysql_error());

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

17-10-2015 19:00

perdi-me.....antes fazia o update,,,,deixou e fazer...o insert tb nao faz......
ta aqui o codigo...pf ajude-me...

<?php $id_publicacao = @$_GET['id_publicacao']; $titulo = ""; $mensagem = ""; if(isset($id_publicacao))//se vier um id pela url... { //vai buscar os dados da publicação á base dados correspondente a esse id_publicacao e mostra-os! $buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." "); $mostrar = mysqli_fetch_array($buscar_dados); $titulo = $mostrar['titulo']; $mensagem = $mostrar['mensagem']; } elseif (isset($_POST['botao_editar'])) { $alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$_REQUEST['text_titulo']."' , mensagem = '".$_REQUEST['text_mensagem']."' WHERE id_publicacao = ".$id_publicacao." ")or die(mysql_error()); // echo'<style type="text/css"> // // .form_publicacao{ // display:none; // } // // </style>'; echo'<div class="login_sucesso"> Publicação alterada com sucesso <br> <a href="forum.php">voltar</a> </div>'; //exit; } else if (isset($_POST['botao_gravar'])) { $titulo = $_POST['text_titulo']; $mensagem = $_POST['text_mensagem']; $inserir = $ligacao->query("INSERT INTO publicacoes(titulo,mensagem,data) VALUES('$titulo','$mensagem',NOW() ) WHERE id_utilizador = ".$_SESSION['id_utilizador']." ")or die(mysql_error()); echo'<style type="text/css"> .form_publicacao{ display:none; } </style>'; echo'<div class="login_sucesso"> Publicação gravada com sucesso <br> <a href="forum.php">voltar</a> </div>'; //exit; } ?> <!--formulario para criar/editar publicação--> <form class="form_publicacao" method="post" action="?"> <h3>publicação</h3> <hr /> <br /> <label for="title">Titulo</label> <br /> <input type="text" id="title" name="text_titulo" size="50" value="<?php echo $titulo ?>" /> <br /> <br /> <label for="msg">Mensagem</label> <br /> <textarea id="msg" name="text_mensagem" rows="10" cols="97"><?php echo $mensagem ?></textarea> <br /> <br /> <input type="hidden" name="id_utilizador" value="<?php echo $_SESSION['id_utilizador'] ?>" /> <input type="hidden" name="id_publicacao" value="<?php echo $id_publicacao ?>" /> <?php if(isset($id_publicacao)) { ?> <input type="submit" name="botao_editar" value="editar" /> <?php } else { ?> <input type="submit" name="botao_gravar" value="gravar" /> <?php } ?> <a href="forum.php">voltar</a> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

17-10-2015 20:24

Qual erro está retornando quando tenta fazer o update ou insert?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

18-10-2015 12:12

faz o update mas nao insere um novo registo......
ps: todas as mensagens posteriores pode esquecer....

ja consegui po-lo a fazer o update.....porem pelo script que me aconselhou em que se vier um id pela url, mostra o botao "editar" , onde faço o update, (o qual esta a funcionar direitinho !!!! ) :)

mas quando clico no botao de adicionar novo post , em que nao vem nenhum id pela url e que devia aparecer somente o botao "gravar" , aí evia fazer um insert......mas nao faz nenhum registo novo , somente altera oque ja la tinha!!!! :(


outro pormenor , venha um id ou nao pela url, aparece sempre o botao "gravar".....

sei que esta perto a solução.......poderia me ajudar WEB?
ja vi onde estava o galho: os botoes ja aparecem conforme se vier um id ou nao pela url!!!!

porem aparece sempre uma mensagem de erro:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\micro forum\editor_publicacao.php on line 57 56 $buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." "); 57 $mostrar = mysqli_fetch_array($buscar_dados); 58 59 $id_publicacao = @$_GET['id_publicacao']; 60 $titulo = $mostrar['titulo']; 61 $mensagem = $mostrar['mensagem'];

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

18-10-2015 12:29

FAZ O UPDATE MOSTRANDO SOMENTE O BOTAO EDITAR.....
POREM QD TENTO INSERIR UM NOVO POST, APARECE O BOTAO "GRAVAR" , ATE AQUI TUDO BEM, MAS NAO INSERE NENHUM REGISTO

CODIGO INSERT:

elseif (isset($_POST['botao_gravar'])) { $titulo = $_POST['text_titulo']; $mensagem = $_POST['text_mensagem']; $inserir = $ligacao->query("INSERT INTO publicacoes(titulo,mensagem,data) VALUES('$titulo','$mensagem',NOW() ) WHERE id_utilizador = '".$_SESSION['id_utilizador']."' ")or die(mysql_error());

base dados :

id_publicacao
id_utilizador
titulo
mensagem
data_publicacao


ESTAREI a fazer mal o insert???????
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

18-10-2015 13:24

É ASSIM....criei um forum que mostra todos os posts do utilizador com sessao iniciada.
cada post tem um "editar" correspondente ao id da publicação o qual posso editar esse mesmo post num form fazendo um update (em que se vier um id pelo url, mostra o botao "editar")... .

Caso eu queira inserir um novo post, basta clicar num botao para criar um novo post, o qual me LEVA para o mesmo form, onde verifico se nao vier nenhum id pela url, os campos desse form ficam vazios, a espera de serem preenchidos para eu fazer um insert......porem QUANDO TENTO FAZER O INSERT, NENHUM NOVO POST É INSERIDO.....SOMENTE O UPDATE FUNCIONA......

<?php include 'base_dados/ligacao_bd.php'; session_start(); //se nao houver nenhuma sessão... if(!isset($_SESSION['nome_utilizador'])) { include 'cabecalho.php'; echo '<div class="erro"> nao tem autorização para ver esta pagina. <br> <br> <a href="index.php">retroceder</a> </div>'; include 'rodape.php'; exit;//muito importante este EXIT; pois ja nao deixa executar nada mais abaixo } //----------------------------------------------------------------------- include 'cabecalho.php'; //apresentar o utilizador logado $mostrar_utilizador = $ligacao->query("SELECT * FROM utilizadores WHERE nome_utilizador = '".$_SESSION['nome_utilizador']."' "); $mostrar = mysqli_fetch_array($mostrar_utilizador); echo '<div class="dados_utilizador"> <img src="imagens/avatares/'.$mostrar['avatar'].'" title="foto de perfil de '.$_SESSION['nome_utilizador'].'" ><span>'.$_SESSION['nome_utilizador'].'</span> | <a href="logout.php">sair</a> </div> <hr>'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Editor publicação</title> </head> <body> <?php $id_publicacao = @$_GET['id_publicacao']; $titulo = ""; $mensagem = ""; if(isset($_GET['id_publicacao']))//se vier um id pela url... { //vai buscar os dados da publicação á base dados correspondente a esse id_publicacao e mostra-os! $buscar_dados = $ligacao->query("SELECT * FROM publicacoes WHERE id_publicacao = ".$id_publicacao." "); $mostrar = mysqli_fetch_array($buscar_dados); $titulo = $mostrar['titulo']; $mensagem = $mostrar['mensagem']; } elseif (isset($_POST['botao_editar'])) { $alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$_REQUEST['text_titulo']."' , mensagem = '".$_REQUEST['text_mensagem']."' WHERE id_publicacao = '".$id_publicacao."' ")or die(mysql_error()); } elseif (isset($_POST['botao_gravar'])) { $titulo = $_POST['text_titulo']; $mensagem = $_POST['text_mensagem']; $inserir = $ligacao->query("INSERT INTO publicacoes(id_utilizador,titulo,mensagem,data) VALUES('".$_SESSION['id_utilizador']."','$titulo','$mensagem','NOW()' ) WHERE id_utilizador = '".$_SESSION['id_utilizador']."' ")or die(mysql_error()); } ?> <!--formulario para criar/editar publicação--> <form class="form_publicacao" method="post" action="?"> <h3>publicação</h3> <hr /> <br /> <label for="title">Titulo</label> <br /> <input type="text" id="title" name="text_titulo" size="50" value="<?php echo $titulo ?>" /> <br /> <br /> <label for="msg">Mensagem</label> <br /> <textarea id="msg" name="text_mensagem" rows="10" cols="97"><?php echo $mensagem ?></textarea> <br /> <br /> <input type="hidden" name="id_utilizador" value="<?php echo $_SESSION['id_utilizador'] ?>" /> <input type="hidden" name="id_publicacao" value="<?php echo $id_publicacao ?>" /> <?php if(isset($_GET['id_publicacao'])) { ?> <input type="submit" name="botao_editar" value="editar" /> <?php } else { ?> <input type="submit" name="botao_gravar" value="gravar" /> <?php } ?> </form> </body> </html>

BASE DADOS (PUBLICACOES):

ID_PUBLICACAO
ID_UTILIZADOR
TITULO
MENSAGEM
DATA
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

18-10-2015 13:43

fiz um teste curioso.......metendo 2 posts na base de dados, ele so faz o update do 1º post, e nunca do segundo......isso ja lhe podera me ajudar a solucionar WEB?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

18-10-2015 15:49

WEB, ja resolvi o insert ,so que ha uma coisa curiosa, o update tb funciona bem, SO QUE PARA O ID = 0, OS RESTANTES ID'S DIFERENTES DE 0 NAO FAZEM UPDATE????!!!!!!

COMO PODE SER???????
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

18-10-2015 17:33

O que pode estar acontecendo é o ID de alteração estar se perdendo.

O mais comum nesse caso seria você passar o id a ser alterado para um input "hidden" no formulário de edição.
Quando enviar para a atualização você captura via POST esse ID e passa para o WHERE "WHERE id='..'"
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP

18-10-2015 18:55

pode me dar o exemplo mais especifico baseado no meu codigo,por favor?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17722
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERT OU UPDATE PHP

18-10-2015 20:11

Dentro do if de edição

elseif (isset($_POST['botao_editar'])) {

Adiciona

$titulo = $_POST['text_titulo']; $mensagem = $_POST['text_mensagem']; $id_publicacao = $_POST['id_publicacao'];

A linha do alterar fica assim:

$alterar = $ligacao->query("UPDATE publicacoes SET titulo = '".$titulo."' , mensagem = '".$mensagem."' WHERE id_publicacao = '".$id_publicacao."' ") or die(mysql_error());

1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 266
Sexo: Masculino

Re: INSERT OU UPDATE PHP  #resolvido

19-10-2015 14:32

VOÇÊ É UM GENIO, UM MESTRE , ME TEM AJUDADO BASTANTE, LHE AGRADEÇO MUITO, FUNCIONOU, TENHO APRENDIDO MUITO CONSIGO!!!!
MUITO, MUITO ,MUITO OBRIGADO, DEUS TE AJUDE :)
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado