Ir para conteúdo

Arquivado

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

jokita18

montar array

Recommended Posts

Olá estou com um pequeno problema e agradecia imensos se conseguissem ajudar

tenho esta função que é responsável por ler o banco de dados e retornar a informação sobe forma de array


       $tabela = PREFIX. '_'.$tabela;

          

       $query = "SELECT {$campos} FROM {$tabela} {$parametros}";

       $result = DBExcute($query);

      

       if (!mysqli_num_rows($result)){

           return FALSE;

       }  else {

           while ($res = mysqli_fetch_assoc($result)){

               $data[] = $res;

           }

           return $data;

           

       }     

           }

ou seja ela cria a estrutura [indice numerico][campo]

por isso para visualizar a informação tenho que fazer isto

$readedit =  DBRead('cursos',NULL,'imagem');
 
foreach ($readedit as $fotos) :
   
    echo($fotos['imagem']);
    
    endforeach;

no caso estou a usar uma função por isso a ideia seria esta

nction getphotos(){
       $readedit =  DBRead('cursos',NULL,'imagem');
 
foreach ($readedit as $fotos) :
   
    return  ($fotos['imagem']);
    
    endforeach;}

no entanto como quero que a informação venha sobe a forma de array penso que o correcto seria

nction getphotos(){
       $readedit =  DBRead('cursos',NULL,'imagem');
 
foreach ($readedit as $fotos) :
   
    return  ($fotos);
    
    endforeach;}

o problema é que quando faço isto sé é retornado um valor da tabela ao que parece a repetição do foreach não resulta quando se faz return . provavelmente é muito basico o meu erro mas não estou a conseguir resolver.
desde Já agradecido

João

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Return interrompe a execução da função, ou seja, ela "retorna".

 

Entretanto, o que você está fazendo não tem muito sentido. Sendo $readedit um array, ou ao menos um cursor, basta retorná-lo imediatamente:

function getphotos(){
    return DBRead('cursos',NULL,'imagem');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Obrigado pela sua resposta mas se fizer isso o resultado reyornado é

array (size=4)
  0 => 
    array (size=1)
      'imagem' => string 'IMG_20150821_172656.jpg' (length=23)
  1 => 
    array (size=1)
      'imagem' => string '2013-10-07 13.23.50.jpg' (length=23)
  2 => 
    array (size=1)
      'imagem' => string '../uploads/cursos/2016/Fashion_school_curso-negocios-de-moda.png' (length=64)
  3 => 
    array (size=1)
      'imagem' => string '../uploads/cursos/2016/Fashion_school_test.jpg' (l
ora eu preciso de um resultado assim

array (size=4)
      'imagem' => string 'IMG_20150821_172656.jpg' (length=23)
      'imagem' => string '2013-10-07 13.23.50.jpg' (length=23)
      'imagem' => string '../uploads/cursos/2016/Fashion_school_curso-negocios-de-moda.png' (length=64)
      'imagem' => string '../uploads/cursos/2016/Fashion_school_test.jpg'

ou seja todo o conteúdo retornado num único arrayo se poder ajudar agradeço imenso

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você quer não existe. Não há possibilidade de haverem índices duplicados, o que você pode fazer é remover associativo e usar apenas o numeral:

array (size=4)
    0 => string 'IMG_20150821_172656.jpg' (length=23)
    1 => string '2013-10-07 13.23.50.jpg' (length=23)
    2 => string '../uploads/cursos/2016/Fashion_school_curso-negocios-de-moda.png' (length=64)
    3 => string '../uploads/cursos/2016/Fashion_school_test.jpg'

Para isso, terá que montar o array:

function getphotos(){
    $readedit =  DBRead('cursos',NULL,'imagem');
    
    $return = [];

    foreach ($readedit as $fotos) :
        $return[] = $fotos['imagem'];
    }

    return $return;
}

Entretanto, vejo isso como um desperdício de processamento. Uma vez que você apenas está reprocessando algo que, em teoria, já lhe atende.

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.