Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Pasar una tabla mysql a un array

Estas en el tema de Pasar una tabla mysql a un array en el foro de PHP en Foros del Web. Hola!! Soy manulaiko, tengo 16 años y soy programador de juegos de navegador en php, mysql, c# y java. Actualmente estoy haciendo un juego de ...
  #1 (permalink)  
Antiguo 26/12/2013, 12:36
 
Fecha de Ingreso: febrero-2012
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Pasar una tabla mysql a un array

Hola!!

Soy manulaiko, tengo 16 años y soy programador de juegos de navegador en php, mysql, c# y java. Actualmente estoy haciendo un juego de naves espaciales y tengo un problema al pasar los datos de las naves de la base de datos a un array.

Este es mi codigo:
Código PHP:
<?php
class Shop
{
    
/* DarkOrbit Remix PS
     * Class.Shop.php
     * Here will be usefull functions used in the shops sections
     * By Manulaiko
    */
    
    
public $Ships null;
    public 
$Drones null;
    public 
$Weapons null;
    public 
$Ammo null;
    public 
$Generators null;
    public 
$Extras null;
    public 
$Pet null;
    public 
$Boosters null;
    public 
$Desings null;

    public function 
loadItems()
    {
        global  
$MySQLi;
        
        
$ship $MySQLi->query('SELECT * FROM ships');
        
$this->Ships $ship->fetch_assoc();
        
        
$drones $MySQLi->query('SELECT * FROM shop WHERE type=\'drone\'');
        
$droneDesing $MySQLi->query('SELECT * FROM shop WHERE type=\'droneDesing\'');
        
$droneFormation $MySQLi->query('SELECT * FROM shop WHERE type=\'droneFormation\'');
        
$this->Drones['drones'] = $drones->fetch_assoc();
        
$this->Drones['desings'] = $droneDesing->fetch_assoc();
        
$this->Drones['formations'] = $droneFormation->fetch_assoc();
        
        
$weapons $MySQLi->query('SELECT * FROM shop WHERE type=\'weapon\'');
        
$this->Weapons $weapons->fetch_assoc();
        
        
$ammoBatt $MySQLi->query('SELECT * FROM shop WHERE type=\'battery\'');
        
$ammoRock $MySQLi->query('SELECT * FROM shop WHERE type=\'rocket\'');
        
$ammoMine $MySQLi->query('SELECT * FROM shop WHERE type=\'mine\'');
        
$this->Ammo['batteries'] = $ammoBatt->fetch_assoc();
        
$this->Ammo['rockets'] = $ammoRock->fetch_assoc();
        
$this->Ammo['mines'] = $ammoMine->fetch_assoc();
        
        
$speed $MySQLi->query('SELECT * FROM shop WHERE type=\'speed\'');
        
$shield $MySQLi->query('SELECT * FROM shop WHERE type=\'shield\'');
        
$this->Generators['speeds'] = $speed->fetch_assoc();
        
$this->Generators['shields'] = $shield->fetch_assoc();
        
        
$extra $MySQLi->query('SELECT * FROM shop WHERE type=\'extra\'');
        
$this->Extra $extra->fetch_assoc();
        
        
$pet $MySQLi->query('SELECT * FROM shop WHERE type=\'pet\'');
        
$petGear $MySQLi->query('SELECT * FROM shop WHERE type=\'petGear\'');
        
$petProt $MySQLi->query('SELECT * FROM shop WHERE type=\'petProtocol\'');
        
$this->Pet['pet'] = $pet->fetch_assoc();
        
$this->Pet['gears'] = $petGear->fetch_assoc();
        
$this->Pet['protocols'] = $petProt->fetch_assoc();
        
        
$standar $MySQLi->query('SELECT * FROM shop WHERE type=\'booster\'');
        
$special $MySQLi->query('SELECT * FROM shop WHERE type=\'boosterSpecial\'');
        
$this->Booster['standar'] = $standar->fetch_assoc();
        
$this->Booster['special'] = $special->fetch_assoc();
        
        
$vengui $MySQLi->query('SELECT * FROM shop WHERE type=\'desingVengeance\'');
        
$goli $MySQLi->query('SELECT * FROM shop WHERE type=\'desingGoliath\'');
        
$aegi $MySQLi->query('SELECT * FROM shop WHERE type=\'desingAegis\'');
        
$cita $MySQLi->query('SELECT * FROM shop WHERE type=\'desingCitadel\'');
        
$spea $MySQLi->query('SELECT * FROM shop WHERE type=\'desingSpearhead\'');
        
$this->Desings['vengeance'] = $vengui->fetch_assoc();
        
$this->Desings['goliath'] = $goli->fetch_assoc();
        
$this->Desings['aegis'] = $aegi->fetch_assoc();
        
$this->Desings['citadel'] = $cita->fetch_assoc();
        
$this->Desings['spearhead'] = $cita->fetch_assoc();
    }
}
?>
Lo que quiero es pasar una tabla completa de la base de datos a un array, supongamos que quiero pasar la tabla 'ships', en esa tabla hay 145 filas (unas cuantas :D) y quiero que cada fila se pueda acceder desde el array al que se le asigna.

Por ejemplo para cojer el id de la nave phoenix se pueda hacer de la siguiente manera:
Código PHP:
<?php echo(number_format($Shop->ships['phoenix']['Id'], 0',''.')); ?>
No se si me he explicado bien :P
Es posible hacer esto que quiero?

Nos vemos
  #2 (permalink)  
Antiguo 26/12/2013, 13:32
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Pasar una tabla mysql a un array

si es posible pero dudo de tus capasiades viendo que usas POO y no puede hacer eso.

usa foreach o for para rearmar el array

es algo asi

Código PHP:
Ver original
  1. $ship = $MySQLi->query('SELECT * FROM ships');
  2. $data=$ship->fetch_assoc();
  3. foreach($data as $valor){
  4. $n_ships[$valor['nombre']]=$valor;
  5. }
  6. $this->Ships =$n_ships;
  #3 (permalink)  
Antiguo 26/12/2013, 13:39
 
Fecha de Ingreso: febrero-2012
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Pasar una tabla mysql a un array

Cita:
Iniciado por enlinea777 Ver Mensaje
si es posible pero dudo de tus capasiades viendo que usas POO y no puede hacer eso.

usa foreach o for para rearmar el array

es algo asi

Código PHP:
Ver original
  1. $ship = $MySQLi->query('SELECT * FROM ships');
  2. $data=$ship->fetch_assoc();
  3. foreach($data as $valor){
  4. $n_ships[$valor['nombre']]=$valor;
  5. }
  6. $this->Ships =$n_ships;
Gracias no sabia que era tan fácil!

Nos vemos!

Etiquetas: mysql, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:21.