bueno, este pedaso es de una clase en un manual de php
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?
Imprime en una variable que tipo de objeto te retorna la función extraer_registro???
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
Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
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
return $fila['loquesea'];
Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
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.
esta es la clase:
<?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:
<?PHP
include("clase_mysql.php");
$servidor = "localhost";
$usuario = "root";
$pass = "---------";
$base_datos = "ejemplos";
$usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);
?>
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.
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:
$servidor = "localhost";
$usuario = "root";
$pass = "---------";
$base_datos = "ejemplos";
$usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);
precisamente la linea
$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
$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 :/
Pero postea todo lo que te dice cuando ejecutas ese archivo .php
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
Pero solo es un warning, te funciona igualmente el script?
para meter usuarios, crear tablas etc... si
pero para recoger datos no
Cita de: Nphacks en 26 Julio 2009, 17:55 PM
para meter usuarios, crear tablas etc... si
pero para recoger datos no
El error es que no declaras bien la busqueda...
¿Que pones en la busqueda?
Cita de: Erik# en 26 Julio 2009, 18:01 PM
Cita de: Nphacks en 26 Julio 2009, 17:55 PM
para meter usuarios, crear tablas etc... si
pero para recoger datos no
El error es que no declaras bien la busqueda...
¿Que pones en la busqueda?
esque aunque haga un select o no, me aparece el error, en cuanto hago el $usuario = new Servidor_Base_Datos($servidor,$usuario,$pass,$base_datos);
me suelta el error
Has probado de poner variables en public?
Cita de: Erik# en 26 Julio 2009, 20:01 PM
Has probado de poner variables en public?
no, lo voy a probar pero creo que va a resultar lo mismo por que estoy llamando a las variables desde la misma clase en las que estan
Cita de: & eDu & en 26 Julio 2009, 13:54 PM
Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
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
return $fila['loquesea'];
Creo yo que aqui ya dijeron la respuesta ;D
y procura usar mysql_fetch_assoc, genera un array mas pequeño, es bastante util si queremos reducir consumo de recursos
Cita de: Pazador en 27 Julio 2009, 03:34 AM
Cita de: & eDu & en 26 Julio 2009, 13:54 PM
Cita de: Nphacks en 26 Julio 2009, 06:24 AM
bueno, este pedaso es de una clase en un manual de php
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
return $fila['loquesea'];
Creo yo que aqui ya dijeron la respuesta ;D
y procura usar mysql_fetch_assoc, genera un array mas pequeño, es bastante util si queremos reducir consumo de recursos
No esta bien pero no se supone que es el error, porque en teoria al no poner el contenido de la tabla del array tendria que devolverte el valor
Array.
Y recuerda que para mostrar un return necesitas usas echo o printf :)
Cita de: Pazador en 27 Julio 2009, 03:34 AM
Creo yo que aqui ya dijeron la respuesta ;D
y procura usar mysql_fetch_assoc, genera un array mas pequeño, es bastante util si queremos reducir consumo de recursos
bueno, ya probe poniendo retun array["name"]
y nada, el problema es que
me da error al llamar la clase, antes de que use el metodo exraer registro, ya me sale el warning entonces
voy a omitir el warning con una @ y lo pruebo aver que pasa :-\
Lo que llevo diciendote desde el inicio xD : error_reporting(0); al inciio del code :)
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;
}
}
Que pretendes hacer ¿?
- Recuperar la primera fila ¿?
- Recuperar la ultima fila ¿?
- Recuperar todas las filas ¿?
- Recuperar una fila especifica ¿?
Algo asi ¡?
public function extraer_registro()
{
$num = mysql_num_rows($this->resultado);
if($num==0)
{ return false; }
else
{
while($row=mysql_fetch_array($this->consulta))
{
return $row;
}
}
}
¿?¿?¿?¿?