error con mysql_fetch_array

Iniciado por Og., 26 Julio 2009, 06:24 AM

0 Miembros y 1 Visitante están viendo este tema.

Og.

bueno, este pedaso es de una clase en un manual de php
Código (php) [Seleccionar]
public function consulta($consulta)
{
$this->resultado = mysql_query($consulta,$this->descriptor);
}
public function extraer_registro()
{
if ($fila = mysql_fetch_array($this->resultado,MYSQL_ASSOC)) {
return $fila;
} else {
return false;
}
}

bueno, el problema es que al intentar llamar el resultado de una consulta me da este error:

Citar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/np/www/SQL/index.php on line 29

alguna ayuda?
|-

RadicalEd

Imprime en una variable que tipo de objeto te retorna la función extraer_registro???
Erik# el más inteligente de todos, ya empezó su lenguaje script y ahora quiere empezar un lenguaje esóterico

Erik#

Pero unicamente es un warning, si te funciona bien: error_reporting(0); y listo.
O si no, fetch_array solo acepta consultas de seleccion, osea tienes que haber hecho: SELECT * FROM `mi_tabla`ORDER BY `id` DESC... por ejemplo.

Aunque desconozco un poco el uso de clases el PHP, creo que ahí el warning, no se :S

& eDu &

Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
Código (php) [Seleccionar]
public function consulta($consulta)
{
$this->resultado = mysql_query($consulta,$this->descriptor);
}
public function extraer_registro()
{
if ($fila = mysql_fetch_array($this->resultado,MYSQL_ASSOC)) {
return $fila;
} else {
return false;
}
}

bueno, el problema es que al intentar llamar el resultado de una consulta me da este error:

Citar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/np/www/SQL/index.php on line 29

alguna ayuda?
Hay poco codigo y no logro entender lo que se saca de la DB, pero tu no puedes devolver $fila , se supone que es una array, deberás debolver
Código (php) [Seleccionar]
return $fila['loquesea'];

Erik#

Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
Código (php) [Seleccionar]
public function consulta($consulta)
{
$this->resultado = mysql_query($consulta,$this->descriptor);
}
public function extraer_registro()
{
if ($fila = mysql_fetch_array($this->resultado,MYSQL_ASSOC)) {
return $fila;
} else {
return false;
}
}

bueno, el problema es que al intentar llamar el resultado de una consulta me da este error:

Citar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/np/www/SQL/index.php on line 29

alguna ayuda?

Ademas, tendriamos que ver la consulta que haces, pon el code entero porfavor.

Og.

#5
esta es la clase:
Código (php) [Seleccionar]
<?php
class Servidor_Base_Datos
{
private $servidor;
private $usuario;
private $pass;
private $base_datos;
private $descriptor;
private $resultado;
function __construct($servidor,$usuario,$pass,$base_datos)
{
$this->servidor $servidor;
$this->usuario $usuario;
$this->pass $pass;
$this->base_datos $base_datos;
$this->conectar_base_datos();
}
private function conectar_base_datos()
{
$this->descriptor mysql_connect($this->servidor,$this->usuario,$this->pass);
mysql_select_db($this->base_datos,$this->descriptor);
}
public function consulta($consulta)
{
$this->resultado mysql_query($consulta,$this->descriptor);
}
public function extraer_registro()
{
if ($fila mysql_fetch_array($this->resultado,MYSQL_ASSOC)) {
return $fila;
} else {
return false;
}
}
public function numero_filas()
{
return mysql_num_rows($this->resultado);
}
public function filas_afectadas()
{
return mysql_affected_rows($this->descriptor);
}
}
?>

y al hacer esto me da el error:

Código (php) [Seleccionar]
<?PHP
include("clase_mysql.php");
$servidor = "localhost";
$usuario = "root";
$pass = "---------";
$base_datos = "ejemplos";
$usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);
?>
|-

Erik#

#6
Que yo sepa, tu recojes los datos y lo pasas a $this->... con la función __construct.
Pero en cambio no recojes los datos con ninguna función.

EDIT: Además usuario lo repites, cuando es una variable que contiene datos.

Og.

#7
Cita de: Erik# en 26 Julio 2009, 15:54 PM
Que yo sepa, tu recojes los datos y lo pasas a $this->... con la función __construct.
Pero en cambio no recojes los datos con ninguna función.

EDIT: Además usuario lo repites, cuando es una variable que contiene datos.

al hacer esto:
Código (php) [Seleccionar]

$servidor = "localhost";
$usuario = "root";
$pass = "---------";
$base_datos = "ejemplos";
$usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);

precisamente la linea
Código (php) [Seleccionar]
$usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);
me manda al __construct
y almacena los datos, por eso los otros metodos(son las funciones, pero dentro de una clase se llaman metodos) hacen referencia a lo obtenido en el construct, por eso no pide ningun otro dato ecepto en
Código (php) [Seleccionar]
$usuario->consulta($consulta)
//en este se incluye la consulta que deseo hacer hacia la base de datos


pero aun asi lo que no entiendo es la causa del error :/
|-

Erik#

Pero postea todo lo que te dice cuando ejecutas ese archivo .php

Og.

solo me dice esto:
CitarWarning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/np/www/SQL/index.php on line 29
|-