Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Problema con buscar desde dos select

Estas en el tema de Problema con buscar desde dos select en el foro de PHP en Foros del Web. Hola estoy complicado con mostrar los resultados de una busqueda en base de datos desde un form con dos select, me da el siguiente error: ...
  #1 (permalink)  
Antiguo 02/08/2013, 11:29
 
Fecha de Ingreso: agosto-2013
Mensajes: 5
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Problema con buscar desde dos select

Hola estoy complicado con mostrar los resultados de una busqueda en base de datos desde un form con dos select, me da el siguiente error:
"Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\1\includesreg\asignaturas.php on line 26".

no sé cómo resolver, lo que tengo es:

Código PHP:
<?php include('includesreg/funcionAsig.php'); ?>
<!-- acá llamo a las funciones que me generan los select-->
<form name="selecion" method="post" action="">
            <div id="demo" style="width:400px;">
                
                <div id="demoIzq"><select name='asignaturas' id='asignaturas' >
                <?php gAsignaturas(); ?></div>

                <div id="demoIzq"><select name='nivel' id='nivel' ><?php gNivel(); ?></div>
            </div>
<input type='Submit' name="buscar" value='Buscar'>
</form>

<?php 

if (isset($_POST['buscar'])) {
    
$a=$_POST['asignaturas'];
    
$n=$_POST['nivel'];


include_once(
'conexion/conectar.php');
conectar();
$consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig={$_POST['asignaturas']} AND id_nivel={$_POST['nivel']}",$conn);
;

while(
$registro5=mysql_fetch_row($consulta5)){

    echo 
$registro5;

}
}else{
    echo 
"no se registraron resultados!";
}


?>
los name de cada select se generan automaticamente y corresponden al id de cada campo(id_asig, id_nivel).
cada select es una tabla.
y el resultado a mostrar esta en una tercera tabla que tiene en común los campos id_asig, id_nivel.
se necesitan esto dos campos para que me muestre el resultado asociados a estos.
la tercera tabla tiene filas(id_asig, id_nivel, camentario), yo quiero mostrar los comentarios asociado a los campos marcados.

saludos quedo atento a sus comentarios...
  #2 (permalink)  
Antiguo 02/08/2013, 11:45
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Problema con buscar desde dos select

Hola.

Hay error en el proceso de tu sentencia SQL.
1.-Cambia {} por ' comilla simple en tu sentencia.
2.-Debes hacer algun tipo de validacion antes de colocar los datos enviados desde el cliente, por seguridad.
Ejemplo:
http://www.php.net/manual/es/function.mysql-real-escape-string.php
3.-Debes considerar pasar a MYSQLI u otros, ya que la extension q usas esta obsoleta.
4.-Debes revisar los errores de tu sentencia posterior a la misma.
http://php.net/manual/es/function.mysql-error.php.

Espero te sea de ayuda.
  #3 (permalink)  
Antiguo 02/08/2013, 12:06
 
Fecha de Ingreso: agosto-2013
Mensajes: 5
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Respuesta: Problema con buscar desde dos select

Gracias Erik_MD9, ya cambie lo que me recomendaste
Código PHP:
consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig='$_POST['asignaturas']' AND id_nivel='$_POST['nivel']'",$conn); 
pero ahora me muestra otro erro, y me cambiaré a mysqli, el error es:
"Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\1\includesreg\asignaturas.php on line 24"

lo cambie a las variables y quedó así:
Código PHP:
$consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig='$a' AND id_nivel='$n'",$conn); 
pero al buscar me arroja el mismo error del principio.
algo mal tiene la función, pero con mi novates no lo puedo detectar. Help.
  #4 (permalink)  
Antiguo 02/08/2013, 12:08
 
Fecha de Ingreso: agosto-2013
Mensajes: 5
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Problema con buscar desde dos select

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Hola.

Hay error en el proceso de tu sentencia SQL.
1.-Cambia {} por ' comilla simple en tu sentencia.
2.-Debes hacer algun tipo de validacion antes de colocar los datos enviados desde el cliente, por seguridad.
Ejemplo:
http://www.php.net/manual/es/function.mysql-real-escape-string.php
3.-Debes considerar pasar a MYSQLI u otros, ya que la extension q usas esta obsoleta.
4.-Debes revisar los errores de tu sentencia posterior a la misma.
http://php.net/manual/es/function.mysql-error.php.

Espero te sea de ayuda.
Gracias Erik_MD9, ya cambie lo que me recomendaste
Código PHP:
consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig='$_POST['asignaturas']' AND id_nivel='$_POST['nivel']'",$conn); 
pero ahora me muestra otro erro, y me cambiaré a mysqli, el error es:
"Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\1\includesreg\asignaturas.php on line 24"

lo cambie a las variables y quedó así:
Código PHP:
$consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig='$a' AND id_nivel='$n'",$conn); 
pero al buscar me arroja el mismo error del principio.
algo mal tiene la función, pero con mi novates no lo puedo detectar. Help.
  #5 (permalink)  
Antiguo 02/08/2013, 12:10
Avatar de andinog  
Fecha de Ingreso: febrero-2012
Mensajes: 50
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Problema con buscar desde dos select

Cita:
Iniciado por Erick_MD9 Ver Mensaje
1.-Cambia {} por ' comilla simple en tu sentencia.
Hola, yo diria que hagas lo siguiente:

Código PHP:
Ver original
  1. $id_asig = $_POST['asignaturas'];
  2. $nivel = $_POST['nivel'];
  3.  
  4. "SELECT comentario FROM comentarios WHERE id_asig = $id_asig AND id_nivel = $nivel "

Saludos
__________________
"El que nada duda nada sabe"
Ser Programador
  #6 (permalink)  
Antiguo 02/08/2013, 12:16
Avatar de andinog  
Fecha de Ingreso: febrero-2012
Mensajes: 50
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Problema con buscar desde dos select

Cita:
$consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig={$_POST['asignaturas']} AND id_nivel={$_POST['nivel']}",$conn);
;
Fijate que hay dos puntos y coma seguidos, tal vez eso este molestando...
__________________
"El que nada duda nada sabe"
Ser Programador
  #7 (permalink)  
Antiguo 02/08/2013, 12:25
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Problema con buscar desde dos select

hola
Hay un problema con la sentencia, tabla, columna o valores buscados
agrega a tu sentencia

$consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig='$a' AND id_nivel='$n'",$conn);

if (!$consulta5) { die('Consulta no válida: ' . mysql_error()); }

para ver el error.
  #8 (permalink)  
Antiguo 02/08/2013, 12:29
 
Fecha de Ingreso: agosto-2013
Mensajes: 5
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Problema con buscar desde dos select

Cita:
Iniciado por andinog Ver Mensaje
Fijate que hay dos puntos y coma seguidos, tal vez eso este molestando...
Toda la razón, gracias pero el problema persiste con este error en while:
Código PHP:
Warningmysql_fetch_row() expects parameter 1 to be resourceboolean given in C:xampphtdocs1includesregasignaturas.php on line 26 
Saludos.
  #9 (permalink)  
Antiguo 02/08/2013, 17:33
 
Fecha de Ingreso: agosto-2013
Mensajes: 5
Antigüedad: 10 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Problema con buscar desde dos select

Cita:
Iniciado por Erick_MD9 Ver Mensaje
hola
Hay un problema con la sentencia, tabla, columna o valores buscados
agrega a tu sentencia

$consulta5=mysql_query("SELECT comentario FROM comentarios WHERE id_asig='$a' AND id_nivel='$n'",$conn);

if (!$consulta5) { die('Consulta no válida: ' . mysql_error()); }

para ver el error.
Gracias me abriste los ojos, claro tenia un problema con el nombre de la tabla y otros ; y { demases lo corregí y funciona perfecto, este sería el código final;
Código PHP:
<?php include('includesreg/funcionAsig.php'); ?>

<form name="selecion" method="post" action="">
            <div id="demo" style="width:400px;">
                
                <div id="demoIzq"><select name='asignaturas' id='asignaturas' >
                <?php gAsignaturas(); ?></div>

                <div id="demoIzq"><select name='nivel' id='nivel' ><?php gNivel(); ?></div>
            </div>
<input type='Submit' name="buscar" value='Buscar'>
</form>

<?php 

if (isset($_POST['buscar'])) {
    
$a=$_POST['asignaturas'];
    
$n=$_POST['nivel'];


include_once(
'conexion/conectar.php');
conectar();
$consulta5=mysql_query("SELECT contenido,id_nivel,id_asig FROM contenidos WHERE id_asig=$a AND id_nivel=$n",$conn);

if (!
$consulta5) { 
    die(
'Consulta no válida: ' mysql_error()); 
}

while(
$registro5=mysql_fetch_array($consulta5)){
    echo 
$registro5['contenido'] . "<br>";
}
}
?>

Etiquetas: buscador, form, mysql, select
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 14:06.