1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[ajuda] erro no codigo em php

Discussão em 'Web Development' iniciada por pimpz, 23 de Março de 2008. (Respostas: 26; Visualizações: 1106)

  1. pimpz

    pimpz Power Member

    boas eu estou a tentar executar este codigo para permitir o cliente mudar a password mas esta a dar erro, alguem me pode ajudar?

    o codigo e o seguinte :
    PHP:
      $query=mysql_query("UPDATE cliente SET
            senha='
    $novapass'
                   WHERE login='"
    .$_SESSION['login']."'")




    cumps
     
  2. anjo2

    anjo2 Power Member

    PHP:
    $query=mysql_query("UPDATE cliente SET senha='".$novapass."' WHERE login='".$_SESSION['login']."'");
     
  3. pimpz

    pimpz Power Member

    nao me parece que o problema seja esse, porque nos outros updates nao meti pontos nas variaveis e deu e este ta igual aos outros e nao deu, nao percebo porque :Xx
     
  4. oscarolim

    oscarolim Power Member

    Já experimentaste fazer um echo da query, para ver se ela está de acordo com o que tu esperas receber?
     
  5. mascker

    mascker Power Member

    Boas,

    Coloca o erro que está a dar...

    Saudações
     
  6. pimpz

    pimpz Power Member

    nao esta a dar erro nenhum, apenas nao esta a fazer o update. E quanto aquilo de fazer um echo a query eu fiz e nao apareceu nada


    cumps

    Boas pessoal, ja consegui resolver o problema obrigado de qualquer maneira

    cumps
     
    Última edição pelo moderador: 25 de Março de 2008
  7. oscarolim

    oscarolim Power Member

    o echo é algo disto:
    PHP:
    echo "UPDATE cliente SET senha='$novapass' WHERE login='".$_SESSION['login']."'";
    Já agora, tens um session_start(); no inicio do ficheiro onde está essa instrução?
     
  8. pimpz

    pimpz Power Member

    boas, mas entretanto deparei-me com outro problema LOL. Por exemplo eu queo possibilitar uma consulta em que eu escrevo um nome numa caixa de texto, e procure na base de dados todas as pessoas que tem aquele nome, quer seja o primeiro nome da pessoa ou o ultimo, nao sei se me fiz entender. Eu usei este codigo mas nao esta a fazer o que eu queria;

    PHP:
    if (strcmp($_GET['p'],'nome')==0)
    {

    $q=mysql_query("SELECT Login FROM cliente WHERE login like'".$_POST['nome1']."%'"); 

        for (
    $i=0;$i<(mysql_num_rows($q));$i++)
            echo 
    '<b>Nome do Cliente:  </b><a href="editarperfil.php?clt=$i">'.mysql_result($q,$i,'login').'</a><br>';
    }
     
  9. oscarolim

    oscarolim Power Member

    É login ou Login? na query tinhas Login, mas no resultado tinhas login.
    Depois, o id do cliente não deve vir de um for. Mesmo que tenhas na bd uma chave automatica, se apagares um cliente pelo meio, deixa de ser continuo.
     
  10. pimpz

    pimpz Power Member

    Eu mudei o Login para login agora mas continua a nao dar, experimentei fazer um echo ao $_POST['nome1'] e vim a ver que nao tem nada, que posso fazer?

    cumps
     
  11. oscarolim

    oscarolim Power Member

    Se não tem nada é porque não está a enviar nada.
    Podes mostrar o form que usas para enviar dados?
     
  12. pimpz

    pimpz Power Member

    pois eu estou a tentar fazer tudo na mesma pagina, mas nao deve ser por isso que nao esta a dar, o form do nome e algo assim:

    PHP:
    <form method="post" action="consulta_clientes.php">
    <
    table>
      <
    td>Nome:</td>
      <
    td><input type="text" name="nome1"/></td>
      <
    td><a href="consulta_clientes.php?p=nome">Pesquisar</a></td>
      <
    tr
    </
    table>
    </
    form>
     
  13. oscarolim

    oscarolim Power Member

    Acho que o que tu queres é mais isto:

    PHP:
    <form method="post" action="consulta_clientes.php?p=nome">
    <
    table>
      <
    td>Nome:</td>
      <
    td><input type="text" name="nome1"/></td>
      <
    td><input type="submit" name=submit" value="Pesquisar" /></td>
      <tr> 
    </table>
    </form>
    Mas, mesmo assim.. .convem separares as coisas, fica bem mais legivel :)
     
  14. mascker

    mascker Power Member

    Boas,

    Se queres onde as pessoas tem o primeiro nom eou apelido não devias fazer a query assim

    PHP:
    $nome1 addslashes($_POST['nome1']);
    $q=mysql_query("SELECT id, login FROM cliente WHERE primeiro_nome like'%".$nome1."%' OR apelido like'%".$nome1."%'  ");  
    Agora tens que mudar os nomes primeiro_nome e apelido apra erem iguais aos nomes dos campos na base de dados

    Saudações
     
  15. pimpz

    pimpz Power Member

    mas e que o primeiro nome e o apelido estao no mesmo campo, tipo o cliente escreve o nome completo numa caixa de texto, nao estou a dividir nada
     
  16. mascker

    mascker Power Member

    Boas,

    Então metes apenas

    PHP:
    $q=mysql_query("SELECT id, login FROM cliente WHERE nome LIKE'%".$nome1."%'   ");  
    Saudações
     
  17. pimpz

    pimpz Power Member

    mas como eu disse em cima , o $_POST['nome1'] esta vazio, por isso nao ia dar a mesma
     
  18. AliFromCairo

    AliFromCairo Power Member

    Boas, o problema do formulário que colocaste acima, é que não está a ser enviado (estás apenas a redireccionar o utilizador para outra página que, neste caso, é a mesma), logo a variável $_POST não vai conter a informação que queres. Experimenta o código que o oscarolim colocou, pois deve funcionar correctamente.
     
    Última edição: 25 de Março de 2008
  19. pimpz

    pimpz Power Member

    sim ja esta a funcionar muito obrigado
     
  20. oscarolim

    oscarolim Power Member

    E o problema inicial de mudança de senha está resolvido?
     

Partilhar esta Página