Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá bom dia pessoal,
tenho a seguinte dúvida, preciso que o ultimo conteúdo cadastrado para um determinado cliente exiba, por primeiro no caso de uma select normal seria ORDER BY id DESC mais eu nao posso fazer isso pois tenho 2 select e um array....
a primeira select, está abaixo... ela ve se a SESSION login do cara tem o mesmo email, até ai beleza...
$session_pegada = $_SESSION['login'];
$sql_clientes = "SELECT * FROM clientes WHERE email = '$session_pegada'";
$res_clientes = mysql_query($sql_clientes);
$dados_clientes = mysql_fetch_array($res_clientes);
ja minha segunda select é onde esta todo o conteúdo que foi inserido pelo painel mais la no painel fiz ele cadastrar este conteudo para um determinado cliente ou o mesmo para vários... então fiz a select de onde está o conteudo...
$sql_ver = "SELECT * FROM restrito_informacoes_desc";
$res_ver = mysql_query($sql_ver);
$dados_ver = mysql_fetch_array($res_ver);
e logo abaixo fiz um array para que ele exiba o conteudo para o cliente se tiver o ID do cliente la na coluna ele vai exibir se nao ele vai constar que nao tem nada para o cliente... abaixo o array
$array = explode(',', $dados_ver['cliente']);
if (in_array ($dados_clientes['id'], $array))
{
até aqui beelza ta tudo funcionando ta exibindo mais eu gostaria que exibisse como disse no inicio o ultimo conteudo cadastrado por primeiro na página para que o cliente que logou possa ver... tentei colocar o ORDER BY id DESC na select "restrito_informacoes_desc" mais nao deu tambem...
Me dão um help ai por favor...
Pior que aquilo la que me disse primeiro, apenas colocar o ID DESC também nao funcionou...
e sim tenho o "id" na tabela "restrito_informacoes_desc"...
O que deu pra entender que se eu colocar ORDER BY id DESC ele pega o ultimo ID cadastrado certo?
então ai se ele pegar o ultimo cadastrado e nesse id cadastrado nao tiver o id do cliente na coluna "cliente" que no caso o meu é separado por virgulas como ja pode ter visto, minha coluna "cliente" fica assim: "2,8,9,12,15 ....".
Ai acho que se eu tiver colocando esse ORDER BY id DESC nessa tabela ele vai pegar o ultimo cadastrado se tiver o id do cliente na coluna "cliente" vai funcionar certinho, mais e se caso nao tiver? ai para o cliente vai exibir "VOCE AINDA NAO TEM NADA" mesmo tendo mais de outra postagem anterior...
Entendeu ?
Vlw pela força!
Não entendi nada, porém estou deduzindo que o campo id da sua tabela restrito_informacoes_desc é uma string?
"1,5,4,7,9,10"
Aí você dá um explode nessa string para transformá-la em um arrey certo, e o que você precise é que esse array seja na ordem decrescente?
se for isso é simples:
$array = explode(",", "1,5,4,7,9,10");
arsort($array); // ordena o array em ordem decrescente
if (in_array ($dados_clientes['id'], $array)) {
.
.
.
}
Acho que é isso que você precisa.
sim, mais não é a coluna ID que é uma string é a "cliente" .. mais beleza fiz assim como disse...
<?
$session_pegada = $_SESSION['login'];
$sql_clientes = "SELECT * FROM clientes WHERE email = '$session_pegada'";
$res_clientes = mysql_query($sql_clientes);
$dados_clientes = mysql_fetch_array($res_clientes);
$sql_ver = "SELECT * FROM restrito_informacoes_desc";
$res_ver = mysql_query($sql_ver);
$dados_ver = mysql_fetch_array($res_ver);
$array = explode(',', $dados_ver['cliente']);
arsort($array);
if (in_array ($dados_clientes['id'], $array))
{
?>
Mais a página fica em branca e não exibe nada... o que pode ser?
if (in_array ($dados_clientes['id'], $array))
{
O que tem daqui para baixo?
as divs para exibir o conteudo, veja irei lhe mandar completo...
<?
$session_pegada = $_SESSION['login'];
$sql_clientes = "SELECT * FROM clientes WHERE email = '$session_pegada'";
$res_clientes = mysql_query($sql_clientes);
$dados_clientes = mysql_fetch_array($res_clientes);
$sql_ver = "SELECT * FROM restrito_informacoes_desc";
$res_ver = mysql_query($sql_ver);
$dados_ver = mysql_fetch_array($res_ver);
$array = explode(',', $dados_ver['cliente']);
arsort($array);
if (in_array ($dados_clientes['id'], $array))
{
?>
<div id="demais_paginas" style="min-height:300px;">
<div id="empresa">
<div id="texto_desc" style="width:900px; float:none; margin-left:-3px;">
<strong><? echo $dados_ver2['titulo']; ?></strong>
<br /></br />
<? echo $dados_ver2['descricao']; ?>
</div>
</div>
</div>
<? }else{ ?>
<div id="demais_paginas" style="min-height:300px;">
<div id="empresa" align="center">
<div id="texto_desc" style="float:none; width:900px; margin-right:5px; margin-left:5px;">
<strong>Você ainda não tem informação cadastrada!</strong>
</div>
</div>
</div>
<? } ?>
Isto ai, tem alguma idéia?
De onde tá vindo essa variável: <? echo $dados_ver2['titulo']; ?>
Não seria: <? echo $dados_ver['titulo']; ?>
At+
Ta beleza resolveu a parada de que nao estava aparecendo, tava tudo em branco, mais beleza, mais aquele problema nao arrumou, pois está aparecendo somente o primeiro cadastro e não em ordem, tipo cadastro aparece o ultimo cadastrado, ta aparecendo somente o primeiro conteúdo que foi cadastrado... isso depois que coloquei aquela função!
Mas tá aparecendo um? Então está certo, pois você não colocou um laço para mostrar todos.
At+
Ta então eu sei que ta certo mais o que ta aparecendo é o primeiro que foi cadastrado nao interessa quantos eu insira ele continua aparecendo só o primeiro que foi cadastrado e nesse caso minha duvida sempre foi como vou fazer pra exibir o ultimo que foi cadastrado...
Pelo que entendi, com a estrutura de suas tabelas será difícil, a menos que você crie uma nova tabela para relacionar as outras duas.
Como ficaria isso, essa outra tabela?
cliente
id_cliente
nome_cliente
produto
id_produto
desc_produto
produto_cliente
id_prod_cliente
id_produto
id_cliente
"SELECT nome_cliente, desc_produto, pc.id_produto, pc.id_cliente
FROM produto_cliente pc, cliente c, produto p
WHERE pc.id_produto = p.id_produto AND pc.id_cliente = c.id_cliente
ORDER BY id_prod_cliente DESC";
Siga esse recioncínio que você consiguirá.
At+
Isso não funcionou?
$sql_ver = "SELECT * FROM restrito_informacoes_desc ORDER BY id DESC";
Mas tem o campo "id" na tabela restrito_informacoes_desc?
Não entendi muito o que você quer fazer com esse array, mas acho que daria para resolver dessa maneira:
at+