Comunidad de diseño web y desarrollo en internet online

duda con una consulta

Citar            
MensajeEscrito el 05 Feb 2011 09:45 pm
Hola, ya me estoy haciendo adicto a postear mis dudas en el foro, jaja.

Los hechos, tengo esta consulta:

Código PHP :

<?php
        $queryTareas = @mysql_query("SELECT tarea.nombre, tarea.materia FROM tarea LEFT JOIN alumnos ON tarea.grupo = alumnos.grupo AND tarea.grado = alumnos.grado WHERE alumnos.usuario = '$usuario' ");
      if(!$query){
         echo "consulta no hecha";
      } else {
         while ($rowTareas = mysql_fetch_array($queryTareas)){
         echo htmlentities(ucfirst($rowTareas['materia'])).": ".ucfirst($rowTareas['nombre']);
         }
      }
?>


la cual en mi pagina me indica que la consulta no se a realizado, pero copio y pego la misma consulta al SQL de phpmyadmin y ahi si realiza la consulta correctamente... logicamente reemplazo la variable $usuario por la misma que tengo en mi formulario en php.

Dato curioso: anoche que hice el codigo si funcionaba, y hoy que abri el archivo para seguir trabajando en el ya no funciona.

Saludos y mil gracias por cualquier dato que me pueda servir.

Por holler

65 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Feb 2011 10:03 pm
y la conexion a mysql? o la mysql_connect?
y estas depurando?
solo se le pone @ a una funcion cuando esta ya esta en produccion osea cuando terminamos el proyecto , pero cuando desarrollamos tenemos que quitarla para que nos muestre cualquier error ; ya que aveces pequeños errores nos vuelven loco.

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Feb 2011 10:17 pm
Si, justo acababa de leer eso en otro post, sin la @ da el mismo resultado sin ningun mensaje de error, tambien puse or die(mysqlerror()) para ver si arrojaba algun error y no dio ninguno.

La conexion a mysql o mysql_connect las realizo al principio de la pagina con un require('conectar.php'); y funciona correctamente porque las demas consultas las realiza a la perfeccion.

Pongo el codigo donde realizo la conexion:

Código PHP :

<?php
# conectar a la base de datos
$con = mysql_connect("localhost","root","david");
if (!$con)
  {
  die('No se puede conectar: ' . mysql_error());
  }


mysql_select_db("usuarios_prepa", $con);

?>

Por holler

65 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Feb 2011 09:46 am
un consejo, cuando estes depurando unapágina y no ves si ha hecho bien la consulta, muestra la consulta SQL construida por si te puede ayudar, y como dice tuadmin, si lo que quieres es saber si da error. la arroba fuera y pone un or die() con el error y asi sabes que falla ahi la consulta. Ej:

Código PHP :


$sql = "SELECT tarea.nombre, tarea.materia FROM tarea LEFT JOIN alumnos ON tarea.grupo = alumnos.grupo AND tarea.grado = alumnos.grado WHERE alumnos.usuario = '$usuario' ";


echo "Consulta a la BD ->" . $sql;

  $queryTareas = mysql_query($sql) or die("Error  en la consulta->" . mysql_error()." <br><br> Consulta SQL: " . $sql);



Parece una tonteria pero estos consejos me han sacado de infinidad de problemas

Un saludo

Por rosillo83

18 de clabLevel



 

Desarrollador Web PHP&MySQL

firefox
Citar            
MensajeEscrito el 06 Feb 2011 03:19 pm
Afirmo, lo intente tambien con or die(mysqlerror()), lo puse en mi comentario anterior...

holler escribió:

Si, justo acababa de leer eso en otro post, sin la @ da el mismo resultado sin ningun mensaje de error, tambien puse or die(mysqlerror()) para ver si arrojaba algun error y no dio ninguno.

La conexion a mysql o mysql_connect las realizo al principio de la pagina con un require('conectar.php'); y funciona correctamente porque las demas consultas las realiza a la perfeccion.

Por holler

65 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Feb 2011 08:44 pm
mmm y la variable $query;
solo veo la variable $queryTareas;
para evitar eso es mejor poner los mensajes de error en la primera linea de tu codigo pon esto

Código PHP :

error_reporting(E_ALL);

ya que tu codigo seguro devuelve un error de tipo noticia pocos le toman importancia pero es mejor tener todo controlado

Código PHP :

  $queryTareas = @mysql_query("SELECT tarea.nombre, tarea.materia FROM tarea LEFT JOIN alumnos ON tarea.grupo = alumnos.grupo AND tarea.grado = alumnos.grado WHERE alumnos.usuario = '$usuario' "); 
      if(!$query){ 

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Feb 2011 02:54 pm

holler escribió:

Código PHP :

<?php
        $queryTareas = @mysql_query("SELECT tarea.nombre, tarea.materia FROM tarea LEFT JOIN alumnos ON tarea.grupo = alumnos.grupo AND tarea.grado = alumnos.grado WHERE alumnos.usuario = '$usuario' ");
      if(!$query){
         echo "consulta no hecha";
      } else {
         while ($rowTareas = mysql_fetch_array($queryTareas)){
         echo htmlentities(ucfirst($rowTareas['materia'])).": ".ucfirst($rowTareas['nombre']);
         }
      }
?>

La función mysql_query() devuelve la consulta en la variable $queryTareas pero luego en el if estás preguntando por el valor de una misteriosa variable $query.
De todas formas el while que estás usando es sospechoso, antes de entrar en él tendrías que saber si la consulta devolvió algún registro.

Código PHP :

        $queryTareas = @mysql_query("SELECT tarea.nombre, tarea.materia FROM tarea LEFT JOIN alumnos ON tarea.grupo = alumnos.grupo AND tarea.grado = alumnos.grado WHERE alumnos.usuario = '$usuario' ");
       if (mysql_num_rows($queryTareas) > 0) {
          $rowTareas = mysql_fetch_assoc($queryTareas);
          do {
             echo htmlentities(ucfirst($rowTareas['materia'])).": ".ucfirst($rowTareas['nombre']);
          } while ($rowTareas = mysql_fetch_assoc($queryTareas));
       }

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 Feb 2011 04:00 pm
Ey ya, gracias, eso del $query se quedo en mi cerebro como un $queryTareas, aunque gracias a los ultimos comentarios vi que mi cerebro y mi codigo no estaban iguales.

Muchas gracias por hacerme notar el error.

Por holler

65 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.