[Resolvido] Resolver um desafio/exercício
Bom dia pessoal, um amigo meu perguntou se eu conseguia criar uma função igual aquela do pdo -> fetchAll(PDO::MYSQL_ASSOC).
Essa função ela retorna todos os dados +- assim:
// 2 registros
array(1) {
[0]=>
array(4) {
["user_id"]=>
string(1) "1"
["name"]=>
string(13) "Administrador"
["email"]=>
string(15) "admin@admin.com"
["status"]=>
string(1) "1"
}
[1]=>
array(4) {
["user_id"]=>
string(1) "2"
["name"]=>
string(6) "aeeaea"
["email"]=>
string(16) "eaeaae@email.com"
["status"]=>
string(1) "1"
}
}
Como podem ver, ele aloca na chave o nome do campo da tabela, e no valor da coluna em si.
Até nesse ponto tudo bem, entendi +- a forma que é retornado os dados:
Então agora eu deveria criar uma função que faz a mesma coisa, retorne um array deste jeito(usando apenas funções do mysql, ex: mysql_fetch_array).
Eu tentei fazer, mas consigo percorrer todos os registros, consigo resgatar apenas o primeiro dado:
Segue o meu código como eu fiz até agora:
function getValues($qry, $qtd, $type = 1){
switch((int)$type){
case 2: MYSQL_NUM; break;
case 3: MYSQL_BOTH; break;
default: MYSQL_ASSOC; break;
}
if($qtd != 0){
foreach( mysql_fetch_array($qry, $type) as $k => $v ) {
$str[$k] = $v;
}
return $str;
} else {
return false;
}
}
$qry1 = mysql_query("SELECT * FROM user WHERE status != 0 ORDER BY name ASC");
$qtd1 = mysql_num_rows($qry1);
$users[] = getValues($qry1, $qtd1);
echo '<pre>'; var_dump($users);
A saída:
array(1) {
[0]=>
array(4) {
["user_id"]=>
string(1) "1"
["name"]=>
string(13) "Administrador"
["email"]=>
string(15) "admin@admin.com"
["status"]=>
string(1) "1"
}
}
Será que alguém pode me ajudar? :thumbsup:
Discussão (2)
Carregando comentários...