Ir para conteúdo

POWERED BY:

Arquivado

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

Tereza Marta

Otimizar Múltiplos Selects em Tabela Mysql

Recommended Posts

Olá pessoal!

Estou precisando de uma ajuda profissional pra otimizar essa consulta.

 

Essa consulta abaixo pega as pessoas que estão acima do usuário em uma rede... sendo que os "usuários" são apresentados por outros usuários que são os seus "patrocinadores"... mais ou menos assim:

o usuario: joão ($usuario) foi patrocinado pelo usuario: paulo ($upline1 do $usuario),

o paulo foi patrocinado pelo usuario: sandro ($upline2 do $usuario),

o sandro foi patrocinado pelo usuario: josé ($upline3 do $usuario),

o josé foi patrocinado pelo usuario: mateus ($upline4 do $usuario),

e assim por diante...

 

Tenho que fazer essa consulta numa tabela e acho que ela pode ser otimizada para melhorar a performance e o desempenho. Na sua opinião como eu devo fazer para ela ficar mais elegante ou correta, sei lá, rsss

 

$query = mysql_query("SELECT * FROM usuarios WHERE id='6'");
while($um = mysql_fetch_array($query)){
$nome = $um["nome"];
$usuario = $um["usuario"];
$upline1 = $um["patrocinador"];
}
$query = mysql_query("SELECT * FROM usuarios WHERE usuario='$upline1'");
while($dois = mysql_fetch_array($query)){
$upline2 = $dois["patrocinador"];
}
$query = mysql_query("SELECT * FROM usuarios WHERE usuario='$upline2'");
while($tres = mysql_fetch_array($query)){
$upline3 = $tres["patrocinador"];
}
$query = mysql_query("SELECT * FROM usuarios WHERE usuario='$upline3'");
while($quatro = mysql_fetch_array($query)){
$upline4 = $quatro["patrocinador"];
}

echo "<p>nome: $nome</p>";
echo "<p>usuario: $usuario</p>";
echo "<p>upline1: $upline1</p>";
echo "<p>upline2: $upline2</p>";
echo "<p>upline3: $upline3</p>";
echo "<p>upline4: $upline4</p>";

 

OBS: Não vou mentir... eu fiz ela assim por que eu não entendo quase nada de php/mysql e fiz ela copiando e colando aqui do iMasters. rsss

 

AGRADEÇO A AJUDA (e a opinião) DE TODOS!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não entendi bem mas um simples select resolve.

 

 

SELECT a.*, b.* FROM usuarios a

LEFT JOIN usuarios b ON a.usuario = b.usuario 
WHERE id='6'

Olá Vinicius Rangel,

Obrigada pela resposta.

Mas como eu poderia implementar isso de forma prática, ou seja, como ficaria a query e como eu pegaria os arrays (ou esses códigos: $upline1) para colocar no echo... me avisa se vc entendeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites
$query = "SELECT a.*, b.* FROM usuarios a LEFT JOIN usuarios b ON a.usuario = b.usuario  WHERE id='6'";
$data = mysql_fetch_array($query);
echo '<pre>';
print_r($data);
echo '</pre>';

 

 

ai você vai entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

$query = "SELECT a.*, b.* FROM usuarios a LEFT JOIN usuarios b ON a.usuario = b.usuario  WHERE id='6'";
$data = mysql_fetch_array($query);
echo '<pre>';
print_r($data);
echo '</pre>';

 

 

ai você vai entender.

Vinicius Rangel, obrigada por me responder de novo, pena que aqui apareceu essa mensagem: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/storage/7/89/db/mastermedia/public_html/index.php on line 30

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.