Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

não repetir valor em laço

Recommended Posts

ai pessoal, a minha ideia é listar todas as colunas da tabela que vem do banco e o conteudo, mas queria que visse assim

 

id nome idade

1 maicom 18

2 pedro 24

 

mas está vindo assim

 

id 1 nome maicom idade 18

id 2 nome pedro idade 24

 

oque tenho que mudar para mostrar dessa forma? abraços

 

$returnId = array_keys($index);
$values = array_values($index[$returnId[0]]);
							
$html = "<table border='1'><tr>";
				
for($i = 0; $i < count($values); $i++)
{				
	$where = $returnId[0]." = '".$values[$i]."'";
								
	$select = "SELECT * FROM tbl_teste WHERE ".$where;						
	$this->query($select);
					
	$dados = $this->result();
	$campos = array_keys($dados);
	$value = array_values($dados);
					
	for($j=0; $j < count($campos); $j++)
	{
		if($j == 0 and $i != 0)
		{
			$html.= "</tr><tr>";
		}
		$html.= "<td>".$campos[$j]."</td>";
		$html.= "<td>".$value[$j]."</td>";
		}							
	}
}
$html.= "</tr></table>";
echo $html;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem eu quase não trabalho com PHP então não sou expert com PHP OO, mas da para fazer assim:

$dados = array();
while($lista = mysql_fetch_array($query)){
    $dados[] = $lista ['id']." ".$lista ['nome']." ".$lista['idade'];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É intencional rodar várias queries ?

 

Pq vc não faz tudo em uma query só ?

Seu código está bem bagunçado.

 

Qual é o valor da variavel $index ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então faça tudo numa query só, dessa forma aqui:

SELECT * FROM tabela WHERE id IN(38, 39, 40)

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, mas a partir disso tenho que fazer ficar em ordem, e foi isso que eu não consegui.

 

id nome idade

 

1 joao 21

2 pedro 24

 

e estava ficando assim

 

id nome idade

1 joao 21

id nome idade

2 pedro 24

 

$returnId = array_keys($index);
$values = "'".implode("', '", array_values($index[$returnId[0]]))."'";
								
$select = "SELECT * FROM tbl_teste WHERE id_usuario IN (".$values.")";						
$this->query($select);
				
$html = "<table>";			
				
				
				
$html.= "</html>";
echo $html;
exit();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conheço bem o seu sistema, e nem sei como ele retorna, mas seria algo assim:

$returnId = array_keys($index);

$values = implode(',', array_values($index[$returnId[0]]));

 

$select = "SELECT * FROM tbl_teste WHERE id_usuario IN ('".$values."')";

$this->query($select);

 

$html = '<table>';

$hmlt .= '<tr><th>id</th><th>nome</th><th>idade</th></tr>';

 

$dados = $this->result();

 

for($j=0; $j < count($dados); $j++)

{

$html.= '<tr><td>'.$dados['id'].'</td><td>'.$dados['nome'].'</td><td>'.$dados['idade'].'</td></tr>';

}

$html.= '</html>';

echo $html;

exit();

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, seria essa a ideia, mas quero que os dados venham automático, e não que eu escreva um por um nas linhas, entende?

 

<tr><td>'.$dados['id'].'</td><td>'.$dados['nome'].'</td><td>'.$dados['idade'].'</td></tr>

 

dessa forma mas varrendo tudo oque tem na tabela e mostrando todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, isso mesmo, retornar todos os campos, por enquanto está assim:

 

$returnId = array_keys($index);
$values = implode("', '", array_values($index[$returnId[0]]));
												
$select = "SELECT * FROM tbl_teste WHERE id_usuario IN ('".$values."')";						
$this->query($select);
					
$html = "";
				
$html.= "<table border='1'>";				
				
while($dados = $this->result())
{				
	$key = array_keys($dados);
	$value = array_values($dados);
					
	for($i=0;$i<count($dados);$i++)
	{
		if($i % count($dados) == 0)
		{
			if($i == 0)
			{
				$html.= "<tr>";
			}
			else
			{
				$html.= "</tr><tr>";
			}
		}
	$html.= "<td>".$key[$i]."</td>";
	$html.= "<td>".$value[$i]."</td>";
	}			
}
											
$html.= '</tr></table>';				
echo $html;
exit();

e o resultado esta assim

 

ID 1 NOME BRUNO ID 2 NOME PEDRO

mas a ideia é ficar assim
ID NOME
1 BRUNO
2 PEDRO

Compartilhar este post


Link para o post
Compartilhar em outros sites

@bcs_ptx, vc precisa de 2 loops.

 

Um para listar primeiro os títulos das colunas, e outro para os valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo mais ou menos assim:

$j = 0;		
while($dados = $this->result())
{				
	$key = array_keys($dados);
	$value = array_values($dados);

	if( $j==0 ) { //só rodar no primeiro loop
		$html.= '<tr>';
		for($i=0;$i<count($dados);$i++)
		{
			$html.= "<th>".$key[$i]."</th>";
		}
		$html.= '</tr>';
	}
	$html.= '<tr>';

	for($i=0;$i<count($dados);$i++)
	{
		$html.= "<td>".$value[$i]."</td>";
	}

	$html.= '</tr>';
$j++;			
}

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.