Foros del Web » Programando para Internet » PHP »

Tengo el sigunete Warning Ayuda porfis

Estas en el tema de Tengo el sigunete Warning Ayuda porfis en el foro de PHP en Foros del Web. que tal como estan tengo el siguente warning Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\siap\Modulo_Tratos_Bonos\consulta. php on line 19 ...
  #1 (permalink)  
Antiguo 23/03/2009, 11:33
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Tengo el sigunete Warning Ayuda porfis

que tal como estan tengo el siguente warning
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\siap\Modulo_Tratos_Bonos\consulta. php on line 19


funcion que me busca el dato
Código PHP:
//Funcion que le  consulta regustros  de Bonos 
function BonosTratos(){
  
//creamos el objeto $con a partir de la clase DBManagerj
  
$con = new DBManager;
  
//usamos el metodo conectar para realizar la conexion
  
if($con->conectar()==true){
  
$query "select p1.Monto, p1.Detalle,p2.Nombre,p3.Nombre,p1.Fecha)
        From tbltratos AS p1,tblempleados AS p2,tbltipoturno AS p3"
;
        
$result mysql_query($query);
        if (!
$result)
          return 
false;
        else
          return 
$result;
  }



Consulta.PHP // me muestra los datos
Código PHP:
<?php
include_once("cEmpleado.php");

//creamos el objeto $objempleados de la clase cEmpleado
$objempleados=new cEmpleado;

//la variable $lista consulta todos los empleados
$lista$objempleados->BonosTratos();

?>
<table style="border:1px solid #FF0000; color:#000099;width:400px;">
<tr style="background:#99CCCC;">
<td>Fecha</td>
<td>Detalle</td>
<td>Nombre</td>
<td>Turno</td>
</tr>
<?php
while($row mysql_fetch_array($lista))//linea   donde  marca el error

{
  echo 
"<tr>";
  echo 
"<td>".$row['Fecha']."</td>";
  echo 
"<td>".$row['Detalle']."</td>";
  echo 
"<td>".$row['Id_Empleado']."</td>";
  echo 
"<td>".$row['id_TipoTurno']."</td>";
  echo 
"</tr>";
}
?>
</table>
  #2 (permalink)  
Antiguo 23/03/2009, 11:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Tengo el sigunete Warning Ayuda porfis

Significa que tienes un error en la consulta SQL. Usa mysql_query(...) or die(mysql_error()) para depurarlo.

P.S.: De hecho, parece que está sobrando un paréntesis de cierre ) en la consulta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/03/2009, 11:43
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Tengo el sigunete Warning Ayuda porfis

$query = "select p1.Monto, p1.Detalle,p2.Nombre,p3.Nombre,p1.Fecha)// este!! jeje
From tbltratos AS p1,tblempleados AS p2,tbltipoturno AS p3";

fijate en ese parentesis saludos!
  #4 (permalink)  
Antiguo 23/03/2009, 11:46
 
Fecha de Ingreso: marzo-2009
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Tengo el sigunete Warning Ayuda porfis

Lo podrias hacer más rapido sin usar una variable, directamente
Código PHP:
 mysql_query(); 
y si, parece ser que el problema lo da el

Código:
$query = "select p1.Monto, p1.Detalle,p2.Nombre,p3.Nombre,p1.Fecha)
        From tbltratos AS p1,tblempleados AS p2,tbltipoturno AS p3";
Si te sigue dando, haz:
Código PHP:
mysql_query($query) or die(mysql_error()); 
  #5 (permalink)  
Antiguo 23/03/2009, 11:56
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Tengo el sigunete Warning Ayuda porfis

creo que el problema es el ) que ya lo han mencionado.

como observación y si estoy mal por favor corrijanme, este tipo de consulta por lo general deben de ir acompañadas de un WHERE, eso segun yo, para asegurarnos que tblempleados y tblturnos que son los que entiendo que se relacionan directamente (supongo que la otra tabla igual se relaciona) tengan sus valores correspondientes.

saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 23/03/2009, 12:06
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Tengo el sigunete Warning Ayuda porfis

prueba con esto a ver q t sale
Código PHP:
<?php
include_once("cEmpleado.php");

//creamos el objeto $objempleados de la clase cEmpleado
$objempleados=new cEmpleado;

//la variable $lista consulta todos los empleados
$lista$objempleados->BonosTratos();

?>
<table style="border:1px solid #FF0000; color:#000099;width:400px;">
<tr style="background:#99CCCC;">
<td>Fecha</td>
<td>Detalle</td>
<td>Nombre</td>
<td>Turno</td>
</tr>
<?php
while($row mysql_fetch_array ($lista))//linea   donde  marca el error
{
        
$Fecha=($row["Fecha"]);
      
$Detalle=($row["Detalle"]);
      
$turno=($row["des_tur"]);
      
$Id_Empleado=($row["Id_Empleado"]);
      
$id_TipoTurno=($row["id_TipoTurno"]);
   } 
   
mysql_free_result($lista); 
   
mysql_close($  TU CONEXION conexion);
?>
  #7 (permalink)  
Antiguo 23/03/2009, 12:06
 
Fecha de Ingreso: julio-2008
Mensajes: 129
Antigüedad: 15 años, 10 meses
Puntos: 0
recuerda cambiarle la palabra tu conexion por la tuya en la base de datos y me dice q te sale

disculpa me equivoqe es asi
Código PHP:
<?php
include_once("cEmpleado.php");

//creamos el objeto $objempleados de la clase cEmpleado
$objempleados=new cEmpleado;

//la variable $lista consulta todos los empleados
$lista$objempleados->BonosTratos();

?>
<table style="border:1px solid #FF0000; color:#000099;width:400px;">
<tr style="background:#99CCCC;">
<td>Fecha</td>
<td>Detalle</td>
<td>Nombre</td>
<td>Turno</td>
</tr>
<?php
while($row mysql_fetch_array ($lista))//linea   donde  marca el error
{
        
$Fecha=($row["Fecha"]);
      
$Detalle=($row["Detalle"]);
      
$Id_Empleado=($row["Id_Empleado"]);
      
$id_TipoTurno=($row["id_TipoTurno"]);
   } 
      
   
mysql_free_result($lista); 
   
mysql_close($  TU CONEXION conexion);
?>
</table>

Última edición por GatorV; 23/03/2009 a las 12:13
  #8 (permalink)  
Antiguo 23/03/2009, 12:33
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
bien era el ), pero ahora tengo un problema que de la tabal relacionada no me esta mostrando el nombre en caracter si no que lo sigue mostrando enformato numerico

y los datos me los esta Cuadruplicando mmmmm que extraño por que esta pasando eso ?

Última edición por GatorV; 23/03/2009 a las 13:41
  #9 (permalink)  
Antiguo 23/03/2009, 12:51
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Tengo el sigunete Warning Ayuda porfis

necesitas hacer joins en tu consulta

algo asi

Código :
Ver original
  1. select * from t1 inner join t2 using(campo_comun_de_ambas_tablas) inner join t3 using(campo_comun_de_ambas_tablas)

* te traerá todos los campos de las tres tablas, si lo que quieres es campos específicos tienes que enumerarlos.

suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #10 (permalink)  
Antiguo 23/03/2009, 13:10
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Tengo el sigunete Warning Ayuda porfis

pero de la forma en que lo estoy realizado no lo puedo hacer?
  #11 (permalink)  
Antiguo 23/03/2009, 13:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Tengo el sigunete Warning Ayuda porfis

¿A qué te refieres con la "forma en que lo estoy realizando"?

Para realizar la consulta correctamente, necesitas usar JOIN. Cómo exactamente, depende de los datos que quieras tomar de las tablas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 23/03/2009, 13:25
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Tengo el sigunete Warning Ayuda porfis

Donde estan las condiciones de esa consulta?
Debes agregarle el where
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #13 (permalink)  
Antiguo 23/03/2009, 13:29
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Tengo el sigunete Warning Ayuda porfis

y no lo puedo tomar con los alias tiene que ser con join
  #14 (permalink)  
Antiguo 23/03/2009, 13:34
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Tengo el sigunete Warning Ayuda porfis

el alias es una cosa y los joins son otra, lo segundo es para agrupar las tablas, sin embargo creo que se puede lograr solo con el where.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #15 (permalink)  
Antiguo 23/03/2009, 14:09
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Tengo el sigunete Warning Ayuda porfis

Como relacionas las tablas en la consulta sin el where?
Parece que te tiene mal la enfermedad, estas como delirando, descansa y después piensas en eso.

__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #16 (permalink)  
Antiguo 23/03/2009, 15:46
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Tengo el sigunete Warning Ayuda porfis

a ver tienes que ponerte a revisar sintaxis sql, XD usa la lógica.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 08:27.