Ir para conteúdo

POWERED BY:

Arquivado

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

fportuense

PHP + MySQL

Recommended Posts

Gostaria de saber se é possivel utilizar o Distinct junto com o SELECT *, pois a minha copnsulta so retorna o valor que quero dessa maneira.

 

Em uma tabela tenho cadastrados varias pessoas e seus times de futebol, gostaria que aparecesse apenas 1 vez cada time. Alguem ai tem alguma ideia?

 

Estou usando asim e nao consigo nada

CODE
mysql_query("SELECT DISTINCT * FROM ondas");

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim, mais faltou ai o GROUP BY campo

 

Estou usando o group by, mas eles esta me retornando apenas 1 linha ( ou seja ele nao esta funcionando corretamente)

 

O campo é uma variavel em php

 

("SELECT DISTINCT * FROM ondas GROUP BY '$p'")

 

O que pode ser???

 

eu ja tentei mudar as aspas '' mas mesmo assim... e fazendo o teste colocando ao inves da variavel php o nome do campo ele me retorna so um resultado e nao as opçoes.

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde eu sei, pra usar DISTINCT, deve usar o nome de um dos campos:

 

SELECT DINSTINCT(`nome`) FROM `clientes`

 

Isso pegaria apenas os valores `nome` diferentes da tabela `cliente`...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT DISTINCT * FROM ondas

Pode sim, mais faltou ai o GROUP BY campo

porr@ alaerte, aí tu força a barra

POG ganha mais uma

 

seguinte, faz como o TIU falou,

mesmo que você precise de todos os campos da tabela que você pode trazer por 'select * from tabela'

mas é mais prático usar o nome de todos os campos 'select campo1, campo2, campo3 from tabela'

Fica muito mais fácil para visualizar e principalemente para outras pessoas darem suporte, além de algumas funções necessitarem dessa nomenclatura, como é o caso do distinct.

 

você quer trazer o nome de cada time apenas uma vez, certo. apenas esse dado ou mais alguma coisa?

se for só esse dado faz assim

 

select distinct time from tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de saber se é possivel utilizar o Distinct junto com o SELECT *, pois a minha copnsulta so retorna o valor que quero dessa maneira.

 

Em uma tabela tenho cadastrados varias pessoas e seus times de futebol, gostaria que aparecesse apenas 1 vez cada time. Alguem ai tem alguma ideia?

 

Estou usando asim e nao consigo nada

CODE
mysql_query("SELECT DISTINCT * FROM ondas");

 

Obrigado

 

NaPraia, a minha tabela é muito grande... tem varios colunas e varias linhas. O que eu estou fazendo é pegando nesse caso o TIME mas existem outras opçoes ( estou tentnado fazer ela ficar dinâmica). Quando eu coloco no lugar do TIME a minha variavel PHP ( que é o nome da coluna, não funciona) o único jeito que achei foi fazer o select assim:

 

mysql_query("SELECT * FROM ondas");

 

mas ai vem todos os times e eu nao posso deixar eles ficarem repetidos...

 

Entendeu? ( ta meio confuso...)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando eu coloco no lugar do TIME a minha variavel PHP ( que é o nome da coluna, não funciona) o único jeito que achei foi fazer o select assim:

quando você está com a variável no select, qual é o erro que dá???

posta o teu código onde está a consulta.

 

no caso do select distinct * from tabela não dá erro, mas vai assumir que o campo a se fazer o distinct é o primeiro e que não é o seu caso, pois podem ser vários campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de saber se é possivel utilizar o Distinct junto com o SELECT *, pois a minha copnsulta so retorna o valor que quero dessa maneira.

 

Em uma tabela tenho cadastrados varias pessoas e seus times de futebol, gostaria que aparecesse apenas 1 vez cada time. Alguem ai tem alguma ideia?

 

Estou usando asim e nao consigo nada

CODE
mysql_query("SELECT DISTINCT * FROM ondas");

 

Obrigado

 

 

Ai esta o meu codigo:

 

 

<?$result = mysql_query("SELECT DISTINCT * FROM ondas ");

while ($row = mysql_fetch_array($result)) {

	 ?><option><?printf($row[$p]);?></option>
<?}?>
</select>
<?mysql_free_result($result);

?>

$p é a variável que tem o nome da coluna.

 

 

 

 

 

Desde ja estou agradecendo a paciência e ajuda que vcs estao me dando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT DISTINCT * FROM ondas

isso aqui não existe, tira isso do teu código.

 

se $p é a variável faz assim

select distinct $p, * from ondas

Compartilhar este post


Link para o post
Compartilhar em outros sites

NaPraia, quando eu substituo a linha de comando aparece o seguinte erro:

 

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Apache2.2\htdocs\Projeto Soccerscope\filtro.php on line 31

 

 

na linha 31 tem o seguinte:

 

 

<?mysql_free_result($result);?>

 

 

tirando essa linha ainda da erro, mas a tela nao retorna nada e aparece a seguinte mensagem quando vejo o código fonte:

 

 

<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>C:\Apache2.2\htdocs\Projeto Soccerscope\filtro.php</b> on line <b>26</b><br />

 

 

O que pode ser??

 

eu ja tinha tentado esse selct com a variavel muitas vezes ( eu achava que tinha que ser desse jeito mesmo... mas nunca dava certo..)

 

Obrigado

 

vou voltar ao google fazer mais buscas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

na variavel $p vem o nome do campo.

 

 

Por exemplo

 

 

time que torce ( esse é o titulo da coluna no mysql)

 

$p = TIME QUE TORCE

 

 

o que eu nao quero é que retorne valores repetidos, no caso os times. Exemplo

 

na coluna TIME QUE TORCE

 

 

tem:

 

 

CRUZEIRO

CRUZEIRO

CRUZEIRO

NAUTICO

SANTA CRUZ

SANTA CRUZ

NAUTICO

SANTOS

SANTA CRUZ

SANTOS

SANTOS

 

 

e eu preciso que so apareça:

 

CRUZEIRO

NAUTICO

SANTA CRUZ

SANTOS

 

( cada time uma vez)

 

 

o que pode ser cara?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse select não funciona... e eu nao entendi o porque...

 

Eu ja li e reli sobre isso e nao acho nada...

 

 

Vou postar o codigo pra você dar uma olhada.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu tinnha falado no outro post, ai vai o codigo...

 

o primeiro é onde o php captura o nome das colunas e joga em combobox:

 

 

 

<html>
<head>
<title>Consulta ao Soccerscope</title>
</head>

<body>

<form action="filtro.php" method="post" name="consulta">


<?php
$conn = mysql_connect('seerver', 'user', 'senha');
if (!$conn) {
	die('Could not connect: ' . mysql_error());
}
mysql_select_db('soccerscope');
$result = mysql_query('select * from ondas');
if (!$result) {
	die('Query failed: ' . mysql_error());
}

/* Pegando o titulo das colunas */

?>

  <select name="pesquisa">

<?

$i = 0;
while ($i < mysql_num_fields($result)) {
	$meta = mysql_fetch_field($result, $i);
	if (!$meta) {
		echo "Sem Informação!<br>\n";
	}

	$i++;

$coluna =$meta->name;



echo	 "<option value='$coluna'>$coluna</option>\n\n";

}

?>

  </select>


<br><br>



<input name="enviar" type="submit" value="enviar">



</form>


</body>
</html>

 

Agora vai a segunda pagina onde eu quero que a variavel $p seja usada

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que eu acredito que esteja ocorrendo é que o valor da variável não seja exatamente igual ao nome do campo.

No select, você está colocando alguma aspa para a variável?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu select esta exatamente assim:

 

 

("SELECT DISTINCT * FROM ondas ");

 

 

só tem estas aspas duplas ("). Eu li numa busca no google, que o SQL usa aspas simples, porem quando eu ponho aspas simples para usar a variavel

 

 

("SELECT DISTINCT '$p' FROM ondas ");

 

 

ele me retorna o VALOR DA VARIAVEL, por exemplo.

 

 

se o valor davariavel $p é: 02-TIME QUE TORCE (ele me retorna isso ao inves de me retornar o nome dos clubes)

 

ja fiz varios teste com aspas, sem aspas com aspas duplas, duplas e simples, simples e duplas.... mas se você sugerir algum eu vou fazer!

 

o uqe você acha que é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o valor davariavel $p é: 02-TIME QUE TORCE

você tem um campo na tabela com esse nome????

o valor que está na variável tem que ser o mesmo que está na tabela.

Quais são os campos que você tem na tabela?

 

("SELECT DISTINCT "'$p'" FROM ondas ");
vê se não funciona assim, coloca uma aspa dupla e uma simples e depois, uma simples e uma dupla

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.