listar e editar registos [php]

Boas pessoal
É o seguinte, estou com 2 grandes duvidas, e gostaria que me ajudasses.
Numa ficha tenho a página de cliente, mas só imprime a ultima que foi inserida na bd, eu queria que aparecesse a ficha do cliente da conta ativa.
Como proceder para chegar a essa conclusão ?
Colaborem!
Cumprimentos e obrigado pela disposição de tempo.

fockerpinto

Código:
<?php require_once('Connections/bd.php'); ?>
<?php
mysql_select_db($database_bd, $bd);
$query_clientes = "SELECT * FROM utilizador";
$clientes = mysql_query($query_clientes, $bd) or die(mysql_error());
$row_clientes = mysql_fetch_assoc($clientes);
$totalRows_clientes = mysql_num_rows($clientes);

mysql_select_db($database_bd, $bd);
if ($query_clientes = 'ID')
{
$query_clientes = ""SELECT id, utilizador, password, email, empresa, morada, localidade, codigopostal, telefone, fax, enderecoweb, datacriacaoficha FROM utilizador WHERE id= utilizador";
$clientes = mysql_query($query_clientes, $bd) or die(mysql_error());
$row_clientes = mysql_fetch_assoc($clientes);
$totalRows_clientes = mysql_num_rows($clientes);
}
?>
<?php
    include "vlogin.php";
    require ("print.php");
?>
    <div id="content" align="center">
    
     <h2>Ficha de Cliente </h2>
     <p>&nbsp;</p>
     <p>&nbsp;</p>
     <form action="clienteeditaraposlogin.php" method="post" >
     <table width="568" height="353" border="0">
       <tr>
         <th width="146" height="30" align="right" scope="row"><p>Cliente</p></th>
         <td><p><?php echo $row_clientes['empresa']; ?></p></td>
       </tr>
       <tr>
         <th scope="row" align="right"><p>Data Criação Ficha</p></th>
         <td>
             <p><?php echo $row_clientes['datacriacaoficha']; ?></td>
       </tr>
       <tr>
         <th scope="row" align="right"><p>Morada</p></th>
         <td>
          <p><?php echo $row_clientes['morada']; ?></td>
       </tr>
       <tr>
         <th scope="row" align="right"><p>Localidade</p></th>
         <td>
          <p><?php echo $row_clientes['localidade']; ?></td>
       </tr>
       <tr>
         <th height="41" align="right" scope="row"><p>Cód. Postal</p></th>
         <td>
          <p><?php echo $row_clientes['codigopostal']; ?></td>
       </tr>
       <tr>
         <th scope="row" align="right"><p>Telefone</p></th>
         <td><p><?php echo $row_clientes['telefone']; ?></td>
       </tr>
       <tr>
         <th scope="row" align="right"><p>Fax</p></th>
         <td>
          <p><?php echo $row_clientes['fax']; ?></td>
       </tr>
       <tr>
         <th scope="row" align="right"><p>Endereço Web</p></th>
         <td>
          <p><?php echo $row_clientes['enderecoweb']; ?></td>
       </tr>
<tr>
        <th height="20" colspan="2" align="center" scope="row"><p>
         <a href="clienteeditaraposlogin.php?empresa=<?php echo $row_clientes['empresa']; ?>"><a href="clienteeditaraposlogin.php">Editar</a></p>         
         </th>
       </tr>
     </table>
     </form>
<?php
mysql_free_result($clientes);
?>
 
Última edição:
Na clausula WHERE

WHERE id= utilizador

estás a comparar o campo id com o campo utilizador. Tens de comparar id com um valor.
E não sei o que está a fazer o primeiro query que tens.

if ($query_clientes = 'ID') dá sempre verdadeiro e acho que não faz sentido.
 
bem pessoa arranjei uma maneira estupida digasse de passagem para apresentar os campos da base de dados da conta activa na pagina.
$_SESSION['empresa'] = $row['empresa'];
$_SESSION['ID'] = $row['ID'];
$_SESSION['email'] = $row['email'];
$_SESSION['morada'] = $row['morada'];
$_SESSION['localidade'] = $row['localidade'];
$_SESSION['codigopostal'] = $row['codigopostal'];
$_SESSION['telefone'] = $row['telefone'];
$_SESSION['fax'] = $row['fax'];
$_SESSION['enderecoweb'] = $row['enderecoweb'];
$_SESSION['datacriacaoficha'] = $row['datacriacaoficha'];

depois na página cliente tenho isto
<h2>Ficha de Cliente </h2>
<p>
<p>
<form method="post" name="editar">
<table width="568" height="346" border="0">
<tr>
<th align="center" valign="middle" scope="row"><p>Cliente</p></th>
<td ><p><?php echo $_SESSION['empresa']; ?></td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Nº Cliente</p></th>
<td><p><?php echo $_SESSION['ID']; ?></p></td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>E-Mail</p></th>
<td>
<p><?php echo $_SESSION['email']; ?></td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Morada</p></th>
<td><p><?php echo $_SESSION['morada']; ?></p> </td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Localidade</p></th>
<td><p><?php echo $_SESSION['localidade']; ?></p> </td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Cód. Postal</p></th>
<td><p><?php echo $_SESSION['codigopostal']; ?></p> </td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Telefone</p></th>
<td><p><?php echo $_SESSION['telefone']; ?></p> </td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Fáx</p></th>
<td><p><?php echo $_SESSION['fax']; ?></p> </td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Endereço Web</p></th>
<td><p><?php echo $_SESSION['enderecoweb']; ?></p> </td>
</tr>
<tr>
<th align="center" valign="middle" scope="row"><p>Data Criação Ficha</p></th>
<td><p><?php echo $_SESSION['datacriacaoficha']; ?></p> </td>
</tr>
<tr>
<th height="20" colspan="2" align="center" scope="row"><p>
</p> </th>
</tr>
</table>
</form>
é o que mostra os dados da conta activa na página cliente
mas agora como posso fazer para editar esses campos que aparecem na pagina do cliente e guardar por cima dos existentes na base de dados ?
 
Última edição:
O teu codigo em sí está bem, mas na minha opnião está complicadissimo, abres e fechas muita ves a tag <?php, e não precisas de o fazer...
Mas indo directamente ao assunto a tratar, o que tu quers é alterar os dados neste caso desse "utilizador" é muito facil fazer, com um UPDATE...
Codigo:
$variavel = "UPDATE `nome da base de dados`.`nome da tabela` SET `campo a alterar`='valor a alterar' WHERE (`campo dos ID's`='ID do user a alterar')");
mysql_query($variavel);


No mesmo acompanhamento podes tambem excluir dados ou registos e ate tabelas.
Tudo é possivel.
 
Para alterar os dados, basta criar um novo formulário com os campos editáveis e colocar a instrução que o ozzysnake referiu. Pode ser criado a partir do que mostra os dados de cada cliente e, de seguida, permitir a edição/atualização dos novos dados. Se calhar o melhor é criar um menu com as várias opções (ver, criar, apagar, alterar...) para ser mais fácil para quem usa.
 
os seguintes erros que me davam eram estes:

Código:
Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 6

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 7

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 8

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 9

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 10

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 11

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 12

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 13

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 14

Notice: Undefined variable: row in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 15

Notice: Undefined variable: ID in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 20

Notice: Undefined variable: localidade in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 24

Notice: Undefined variable: enderecoweb in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 28

Notice: Undefined variable: ID in C:\xampp\htdocs\mecapor\atualizarcliente.php on line 30

o trabalho encontra-se aqui disponivel.
http://www.mediafire.com/?ryncfl786u9x33x

obrigada pela ajuda.
cumprimentos
 
Última edição:
desculpa, mas consegui resolver esse erro.
agora sempre que actualizo o cliente, tenho de sair da conta ativa e voltar a entrar para ver os novos dados, sera que não dá para ver isso na hora ?
caso seja preciso mexer em algum ficheiro para fazer essa alteração de dados, encontra-se no clienteeditaraposlogin.php
fica aqui o novo link:http://www.mediafire.com/?ryncfl786u9x33x
 
Dar, dá. Agora era preciso 2 coisas: ver como está feita a base de dados e o ficheiro "atualizarcliente.php", que não vem no pacote de ficheiros do Mediafire, para poder comparar com o que é feito no ficheiro clienteeditaraposlogin.php.
 
desculpa, mas consegui resolver esse erro.
agora sempre que actualizo o cliente, tenho de sair da conta ativa e voltar a entrar para ver os novos dados, sera que não dá para ver isso na hora ?
caso seja preciso mexer em algum ficheiro para fazer essa alteração de dados, encontra-se no clienteeditaraposlogin.php
fica aqui o novo link:http://www.mediafire.com/?ryncfl786u9x33x

Não dá para ver na hora porque guardaste os dados numa session, tens que repor por valores da session.
Ou então era melhor quando fosse feito login, guardares numa session apenas o ID do user. depois fazias a query onde mostra a ficha:
PHP:
$query_clientes = "SELECT `id`,`utilizador,`password`,`email`,`empresa`,`morada`,`localidade`,`codigopostal,`telefone`,`fax`,`enderecoweb`,`datacriacaoficha` FROM `utilizador` WHERE `id`='{$_SESSION['id']}'";
$row_clientes = mysql_fetch_assoc($query_clientes);
//resto do codigo
O facto the te dar erro de undefined variable era talvez porque tavas a fazer fetch_assoc de:
PHP:
$query_clientes = "SELECT * FROM utilizador";
de qualquer maneira penso que mesmo assim ira fazer apenas ao primeiro resultado(?, não tenho a certeza)
 
Back
Topo