Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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' (larray (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
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.
Obrigado :)
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: