Jump to content
Fórum Script Brasil
  • 0

Duvida na impressão dos dados de um array


rocha_jl

Question

Tenho um select que traz resultados de tabelas n para n. Imprimi o array e os dados estão ok. O problema é que eu só consigo visualizar o resultado completo se imprimir dentro do while e preciso utilizar o resultado fora dele.

O que tenho é isso:

<?php

$sql = mysql_query("select * from tabela ... ");

while($linha = mysql_fetch_array($sql)){

$descricao = $linha['descricao'];

$classificacao = $linha['classificacao'];

$categoria = $linha['categoria'];

}

?>

O produto pesquisado tem duas categorias. Se dou um echo dentro do while ele mostra as duas categorias do produto, mas se dou fora, mostra somente a última. Necessito mostras as duas, mas em outra parte do código, na realidade, dentro de uma <div> de um form. Como posso fazer isso?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Porque não coloca todos os resultados em um uma matriz?

<?php
$sql = mysql_query("select * from tabela ... ");
while($linha = mysql_fetch_array($sql)){
     $resultado[] = $linha;
}
?>

Assim, cada resultado será armazenado numa única variável.

Exemplo:

$resultado[0]['descricao']

$resultado[0]['classificacao']

$resultado[0]['categoria']

$resultado[1]['descricao']

$resultado[1]['classificacao']

$resultado[1]['categoria']

e assim sucessivamente...

O produto pesquisado tem duas categorias. Se dou um echo dentro do while ele mostra as duas categorias do produto, mas se dou fora, mostra somente a última.

Ele só vai mostrar a última porque da maneira como você vez, os resultados vão ficar se substituindo a cada iteração do while. Por isso que quanto espera-se mais de um resultado, o ideal é utilizar arrays e matrizes.

Link to comment
Share on other sites

  • 0
Muito obrigado. Funcionou aqui. E para ajudar a quem tem dúvida, eu trouxe os dados desta forma:

<?php

for ($j = 0; $j < count($resultado); $j++){

print_r ($resultado[$j]['categoria']." ");

}

?>

Boa!

Uma outra maneira seria utilizando o foreach:

foreach($resultado as $res){
     echo $res['categoria'];
}

O foreach facilita bastante na hora de lidar com arrays multidimensionais. Com ele, para cada $j haveria uma iteração, e os valores dentro de $j podem ser acessados como se fosse um array de uma única dimensão.

Qualquer coisa tamo ae.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...