Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas.
Precisei Quis exibir uma tabela do servidor SQL com todas as suas linhas e colunas, algo como vemos no phpMyAdmin.
Sei que existem várias inúmeras ferramentas prontas e completas, como phpMyDataGrid, que já fazem isso, mas quis criar do 0 mesmo, para entender o processo.
Abri o KWrite e deu nisso:
function query($q) {
$qry = mysql_query($q);
$keys = array();
$values = array();
$i = 0;
while($row = mysql_fetch_array($qry)) {
// colunas
foreach($row as $key=>$value) {
if(!is_numeric($key)) {
// processar key
if(!in_array($key, $keys)) {
$keys[] = $key;
}
// processar value
$values[$i][] = $value;
}
}
$i++;
}
// criar tabela
$out = '<table>
<tr>';
// criar header
foreach($keys as $c) {
$out .= '<th>'.$c.'</th>';
}
$out .= '</tr>';
// processar linhas
foreach($values as $l) {
$out .= '<tr>';
foreach($l as $d) {
$out .= '<td>'.$d.'</td>';
}
$out .= '</tr>';
}
$out .= '</table>';
return $out;
}
Está funcionando bem, mas para uma coisa como essa, há alguma função nativa já pronta para o trabalho?
Dei uma procurada antes de criar a função, mas não encontrei nenhuma.
Há também outras funções nativas que podem fazer algo que a função (re)faz, para otimizá-la?
Já precisou fazer algo como isso? Como fez?
Obrigado desde já.
fernandotholl, obrigado pela resposta.
Sobre as três funções separadas, realmente é uma boa, o trabalho deixa de ser centralizado, melhorando o entendimento e manutenção do sistema. Ótima sugestão. Não vou usar neste sistema porque, como disse, eu "quis" fazer apenas para entender o processo, foi apenas um teste para aprendizado; mas sua sugestão já está anotada, valeu mesmo.
Caso Jefrey, boa noite!
Eu acredito que sua função não faz muito sentido, ou seja, não vejo necessidade de criar uma função com o nome query e dentro da mesma montar um datagrid como você citou. O Ideal nesse caso seria desenvolver um método para gerar a query, outro para retornar os dados em um array bidimensional e outro para montar o datagrid.
Tipo
<?
É só um exemplo, assim caso você queira aproveitar algum método é possível.
Seu algorítimo está correto, porém fora do contexto que o nome sugere.