Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ayuda con Consulta en Mysql

Estas en el tema de Ayuda con Consulta en Mysql en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos foreros espero puedan ayudarme, estoy comenzando aprender php pop, y estoy haciendo una busqueda mediante un formulario donde atra vez del codigo de ...
  #1 (permalink)  
Antiguo 28/03/2010, 23:35
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años
Puntos: 0
Pregunta Ayuda con Consulta en Mysql

Hola amigos foreros espero puedan ayudarme, estoy comenzando aprender php pop, y estoy haciendo una busqueda mediante un formulario donde atra vez del codigo de alumno busco al alumno en una bd
pero me sale el siguiente error:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\utpsesion\problemacasa\combo.php on line 51


Archivo: combo.php
Código PHP:
<?php
class Conexion{
    
//iniciamos variables
    //atributos para conectar la base de datos
    
var $servidor//servidor donde se encuentra la base de datos
    
var $usuario//nombre de usuario de la base de datos
    
var $password//password de la base de datos 
    
var $bd//nombre de la base de datos a la que quieres acceder
    //////////////////////////////////////////////////////////////////////////
    
var $consulta//aquí se guarda las consultas que se realizan
    
var $enlace//aquí se almacena la conexión con la bd, sí se ha producido
    
var $resultado//aquí se guardan los datos que se generen de una consulta
    
    //constructor, donde se inicializan las variables
    
    
function conectarMySQL($servidor,$usuario,$password,$bd) {
        
$this->servidor=$servidor;
        
$this->usuario=$usuario;
        
$this->password=$password;
        
$this->bd=$bd;
    }
    
    
//conectamos con la base de datos
    
function conectar() {
        
//se realiza la conexión a la base de datos
        
if($this->enlace=mysql_connect($this->servidor,$this->usuario,$this->password)) {
            
//se intenta acceder a la base de datos que deseeamos
            
if(mysql_select_db($this->bd,$this->enlace)) {
                
//Sí es correcta muestra mensaje (sí quieres lo quitas, sólo sirve para ver si funciona).
                
echo "Conexión correcta";
            } else {
                
//Si falla muestra el mensaje que el error está al acceder a la base de datos
                
echo "No se ha podido seleccionar la  BD";
            }
        } else {
            
//Si falla la conexión con la base de datos se muestra el mensaje
            
echo "No se ha podido conectar a la bd";
        }                 
    }
    
    
//function consultas a la bd
    
function consultar($query) {
        
//aquí se realizan las consultas a la base de datos
        
$this->consulta=mysql_query($query,$this->enlace);
    }
    
    
//obtener resultados de la consulta
    
function obtendatos() {
        
//aquí se obtienen los datos de la consulta
        
$this->resultado=mysql_fetch_array($this->consulta);
        return 
$this->resultado;
    }
    
//cerramos la conexión con la base de datos
    
function cerrarconexion() {
        
mysql_close($this->enlace);
    }
    
//libera el contenido que se encuentra en el atributo 
    
function limpiaconsulta() {
        
mysql_free_result($this->consulta);
    }
}

$buscar=$_POST['buscar'];
//creamos el objeto con los datos de nuestra base de datos
$obj=new Conexion();

$obj->conectarMySQL("localhost","root","","colegio");
//realizamos la conexión a la base de datos
$obj->conectar();
//aquí realizamos la consulta que queramos
$obj->consultar("select * from alumno where='$buscar'");
//por ejemplo la de mostrar 10 direcciones de una tabla llamada urls..
$obj->obtendatos();

//cerramos la conexión...
$obj->cerrarconexion();
?>
Archivo: formulario.html

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form action="combo.php" method="post">
  <strong>Buscar Alumno a Modificar: </strong>
  <label>
  <input type="text" name="buscar" id="textfield" />
  </label>
<input type="submit" value="Enviar" />
</form>
</body>
</html> 
gracias
  #2 (permalink)  
Antiguo 28/03/2010, 23:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Ayuda con Consulta en Mysql

El error es claro, no estás pasando un resource. Verifica que estés haciendo bien tu consulta y que la variable que estés pasando a mysql_fetch_array sea un resource. Usa la función mysql_error para detectar si hay un error en tu consulta
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
Verificando tu consulta, tienes un grave error, no estás indicando que columna verificar, si no que le estas diciendo directamente WHERE='$buscar' cuando debe ser WHERE columna='$buscar'.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/03/2010, 00:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 94
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda con Consulta en Mysql

Cita:
Iniciado por abimaelrc Ver Mensaje
El error es claro, no estás pasando un resource. Verifica que estés haciendo bien tu consulta y que la variable que estés pasando a mysql_fetch_array sea un resource. Usa la función mysql_error para detectar si hay un error en tu consulta
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
Verificando tu consulta, tienes un grave error, no estás indicando que columna verificar, si no que le estas diciendo directamente WHERE='$buscar' cuando debe ser WHERE columna='$buscar'.
amigo gracias....que tonto y que ciego....el problema era que no especifique una columna, como dijiste....gracias

Etiquetas: mysql
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:33.