jokita18 0 Denunciar post Postado Junho 28, 2016 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
Gabriel Heming 766 Denunciar post Postado Junho 28, 2016 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
jokita18 0 Denunciar post Postado Junho 28, 2016 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
Gabriel Heming 766 Denunciar post Postado Junho 28, 2016 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
jokita18 0 Denunciar post Postado Junho 28, 2016 Obrigado :) Compartilhar este post Link para o post Compartilhar em outros sites