Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysqli_array

Estas en el tema de mysqli_array en el foro de PHP en Foros del Web. Código PHP: <?php $configurationtrue  =  1 ;include( 'configs.php' ); $query  =  "SELECT * FROM characters,characters" ;   $consulta  =  mysqli_query ( $connection_setup , $query );  $fila  =  $consulta ...
  #1 (permalink)  
Antiguo 31/01/2015, 19:40
Avatar de Thejuanjo  
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 2
Pregunta mysqli_array

Código PHP:
<?php
$configurationtrue 
1;include('configs.php');
$query "SELECT * FROM characters,characters";
 
$consulta mysqli_query($connection_setup,$query); 
$fila $consulta->mysqli_array(MYSQLI_ASSOC);
 echo 
'Nombre: '.$fila['name'].'';
?>
Me sale el siguiente error:

( ! ) Fatal error: Call to a member function mysqli_array() on a non-object in C:\wamp\www\ROA\AA1.php on line 5
Call Stack
# Time Memory Function Location
1 0.0010 133648 {main}( ) ..\AA1.php:0

Alguien puede ayudarme?, que estoy migrando de mysql a mysqli y el mysqli se me traba en la obtención de objetos.

Información extra:

Uso wamp server version 5.2

- PHP Version 5.5.12

Última edición por Thejuanjo; 31/01/2015 a las 19:47
  #2 (permalink)  
Antiguo 31/01/2015, 20:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: mysqli_array

Por un lado, veo que realizas la consulta mediante el estilo por procedimientos, pero intentas formar el array asociativo mediante el estilo orientado a objetos. Solo puedes usar una forma, no ambas a la vez, además, la función se llama mysqli_fetch_array. Consulta el manual.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 31/01/2015, 20:15
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: mysqli_array

Hola amigo, la cosa es que mysqli tiene dos formas de trabajarse. la primera es orientado a objetos, por medio de una clase y la segunda es haciendo uso de funciones tal cual se hacia con mysql_.... la cuestión es que en tu código estas mezclando ambas cosas.

en la conexión estás haciendo uso de la forma procedural :
Código PHP:
Ver original
  1. $consulta = mysqli_query($connection_setup,$query);

y luego intentas acceder como si fuese un objeto por medio del "->". Para que te pueda funcionar lo ideal es que o uses una. o uses la otra.... en ese caso simplemente tienes que instanciar la clase mysqli como clase y luego de eso hacer uso de los respectivos metodos que necesites:
Código PHP:
Ver original
  1. $consulta = new mysqli($servidor,$user,$clave,$bd);
  2. $result= $consulta->query("select * from tutabla");
  3. // en caso que sea un solo registro
  4. //caso contrario tendrias que usar un while
  5. $data = $result->fetch_array();
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #4 (permalink)  
Antiguo 31/01/2015, 20:16
Avatar de Thejuanjo  
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 2
Exclamación Respuesta: mysqli_array

Cita:
Iniciado por Alexis88 Ver Mensaje
Por un lado, veo que realizas la consulta mediante el estilo por procedimientos, pero intentas formar el array asociativo mediante el estilo orientado a objetos. Solo puedes usar una forma.
He mirado ya muchos manuales, lo he copiado de muchas formas ya, hay veces que no me salen errores, pero me sale en blanco la pagina.

El ultimo que he probado ha sido:

Código PHP:
<?php
$configurationtrue 
1;include('configs.php');
$query "SELECT name, level FROM characters,characters";
$mysqli $connection_setup;
 
$resultado mysqli_query($connection_setup,$query); 
/* Realizar consulta */
if ($resultado $mysqli->query($query)) {
 
    
/* obtener un array asociativo de todo el resultado */
    
$resultado_array $resultado->fetch_all(MYSQLI_ASSOC); // MYSQLI_ASSOC indica que el array debe ser asociativo
 
    /* Recorrer array de resultados y mostrar fila por fila */
    
foreach ($resultado_array as $fila) {
        
/* Mostrar la fila */
        
printf ("%s (%s)\n"$fila["name"], $fila["level"]);
    }
 
    
/* liberar el conjunto de resultados */
    
$resultado->free();
}
 
/* cerrar la conexión */
$mysqli->close();
 
?>
Resultado en blanco,

es que esto de pasar a mysqli...
no entiendo nada :S
  #5 (permalink)  
Antiguo 31/01/2015, 20:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: mysqli_array

Te acabo de explicar que estás mezclando dos formas de hacer uso de las funciones de MySQLi. El enlace que te dejé es de un ejemplo sencillo que se muestra en el manual oficial para realizar una consulta y trabajar con el resultado mediante el estilo por procedimientos. Te sugiero mirarlo y adaptarlo a lo que necesitas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 31/01/2015, 20:35
Avatar de Thejuanjo  
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 2
Respuesta: mysqli_array

Código PHP:
<?php
$configurationtrue 
1;include('configs.php');
$link mysqli_connect($serveraddress,$serveruser,$serverpass,$server_db);

/* verificar la conexión */
if (mysqli_connect_errno()) {
    
printf("Conexión fallida: %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT name, level FROM characters.characters";
$result mysqli_query($link$query);

/* array numérico */
$row mysqli_fetch_array($resultMYSQLI_NUM);
printf ("%s (%s)\n"$row[0], $row[1]);

/* array asociativo */
$row mysqli_fetch_array($resultMYSQLI_ASSOC);
printf ("%s (%s)\n"$row["name"], $row["level"]);

/* array numérico y asociativo */
$row mysqli_fetch_array($resultMYSQLI_BOTH);
printf ("%s (%s)\n"$row[0], $row["level"]);

/* liberar la serie de resultados */
mysqli_free_result($result);

/* cerrar la conexión */
mysqli_close($link);
?>
Me da como resultado:

() () ()
  #7 (permalink)  
Antiguo 31/01/2015, 20:48
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: mysqli_array

¿Y qué resultado obtienes si ejecutas la consulta en el phpMyadmin?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 01/02/2015, 08:35
Avatar de Thejuanjo  
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 2
Respuesta: mysqli_array

Al parecer al migrar la base de datos hubo un problema y el contenido no se copió, pero ya esta resuelto, gracias por vuestra respuesta ya se como manejar la consulta en mysqli.

Muchas gracias por vuestra ayuda.

Saludos Juanjo.

Etiquetas: mysql, select, sql
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 23:31.