Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andre Cristhian

ORDER BY Desc

Recommended Posts

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

 

$id_cli = $dados_clientes['id'];
$sql_ver = "SELECT * FROM restrito_informacoes_desc WHERE id = $id ORDER BY id DESC"; 

 

at+

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

De onde tá vindo essa variável: <? echo $dados_ver2['titulo']; ?>

 

Não seria: <? echo $dados_ver['titulo']; ?>

 

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas tá aparecendo um? Então está certo, pois você não colocou um laço para mostrar todos.

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.