Foros del Web » Programando para Internet » PHP »

Código muy sencillo con error.

Estas en el tema de Código muy sencillo con error. en el foro de PHP en Foros del Web. Buenas...! Gente, me da vergüenza pero tengo que pedirles ayuda por un código tan estúpido como este. Tengo estas poquitas líneas, y cuando las ejecuto ...
  #1 (permalink)  
Antiguo 22/01/2009, 11:54
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Código muy sencillo con error.

Buenas...!
Gente, me da vergüenza pero tengo que pedirles ayuda por un código tan estúpido como este.

Tengo estas poquitas líneas, y cuando las ejecuto me arroja el resultado correcto y en la línea de abajo un Warning que dice "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\proyecto\respuesta_carga_llamado.ph p on line 17".
"


Código PHP:

<?php

   
include("plantilla_conexion.php");
   include(
"plantilla_validar.php");


   
$agente='julio';



   
$consulta_agente="SELECT agentes_mercado, agentes_ama, agentes_denominacion FROM agentes WHERE agentes_denominacion LIKE '%$agente%'";
   
   
$resultado_agente=mysql_query($consulta_agente);
   
   
$cantidad_resultado_agente=mysql_num_rows($resultado_agente);

   while(
$fila_agente=mysql_fetch_array($resultado_agente))
   {

      if(
$cantidad_resultado_agente == 0)
      {
            
$resultado_agente='No existen datos';
         echo(
$resultado_agente);
      }

      else
      {
           
$resultado_agente=$fila_agente[agentes_mercado]."-".$fila_agente[agentes_ama]."-".$fila_agente[agentes_denominacion];
         echo(
$resultado_agente);
      }
      
   }

?>

A alguien se le ocurre en que me puedo estar equivocando??
Muchas gracias.
  #2 (permalink)  
Antiguo 22/01/2009, 11:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Código muy sencillo con error.

Hola pabloe9k,

Después de tu mysql_query, imprime el valor de mysql_error() para que veas cual es el problema.

Saludos
  #3 (permalink)  
Antiguo 22/01/2009, 12:01
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Código muy sencillo con error.

Cita:
Iniciado por GatorV Ver Mensaje
Hola pabloe9k,

Después de tu mysql_query, imprime el valor de mysql_error() para que veas cual es el problema.

Saludos
No se si te entendí, pero después de "mysql_query" agregé "echo(mysql_error())" y no apareció nada nuevo.
  #4 (permalink)  
Antiguo 22/01/2009, 12:16
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Código muy sencillo con error.

Hola,
Cambia esto:
$resultado_agente=mysql_query($consulta_agente);
por:
$resultado_agente=mysql_query($consulta_agente) or die(mysql_error());
y di que te imprime.
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 22/01/2009, 12:20
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Código muy sencillo con error.

Cita:
Iniciado por pato12 Ver Mensaje
Hola,
Cambia esto:
$resultado_agente=mysql_query($consulta_agente);
por:
$resultado_agente=mysql_query($consulta_agente) or die(mysql_error());
y di que te imprime.
Suerte
Salu2
Hola.

El resultado es exáctamente el mismo.

Código HTML:
C-038-Standard Bank
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\proyecto\respuesta_carga_llamado.php on line 17
En donde la primera línea es el resultado (correcto) del query pero en la segunda línea sigue apareciendo el mismo error.

Adjunto el código modificado:

Código PHP:

<?php

   
include("plantilla_conexion.php");
   include(
"plantilla_validar.php");


   
$agente='julio';



   
$consulta_agente="SELECT agentes_mercado, agentes_ama, agentes_denominacion FROM agentes WHERE agentes_denominacion LIKE '%$agente%'";
   
//$resultado_agente=mysql_query($consulta_agente);
   
$resultado_agente=mysql_query($consulta_agente) or die(mysql_error()); 
   
   
$cantidad_resultado_agente=mysql_num_rows($resultado_agente);

   while(
$fila_agente=mysql_fetch_array($resultado_agente))
   {

      if(
$cantidad_resultado_agente 1)
      {
            
$resultado_agente='No existen datos';
         echo(
$resultado_agente);
      }

      else
      {
           
$resultado_agente=$fila_agente[agentes_mercado]."-".$fila_agente[agentes_ama]."-".$fila_agente[agentes_denominacion];
         echo(
$resultado_agente);
      }
      
   }

?>
  #6 (permalink)  
Antiguo 22/01/2009, 12:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Código muy sencillo con error.

Mmm el problema es que adentro de tu ciclo nombras una variable $resultado_agente, y la variable que contiene el resultado de tu consulta SQL se llama igual $resultado_agente, por lo que te causa ese problema al reescribir la variable.

Saludos
  #7 (permalink)  
Antiguo 22/01/2009, 12:27
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código muy sencillo con error.

El problema no está ahí, pues sino la función mysql_num_rows() daría el mismo error antes que mysql_fetch_assoc().

El problema es el contenido del while. Resulta que $resultado_agente es inicialmente un resource (recurso), y eso está bien. Ejecutas el primer ciclo sin problemas, y ahí redefines la variable $resultado_agente, le asignas un valor de texto, y por ende tu recurso desaparece. Al ejecutar el segundo ciclo (Vamos, es un ciclo while que no se detiene hasta que su condicion da false, ejecutamos nuevamente la función mysql_fetch_array() con el mismo parámetro, pero que ahora no es un recurso válido. Y por eso lanza el error.

La solución es usar otro nombre de variable para almacenar el texto dentro de tu ciclo while, y así evitas la eliminación de tu recurso.

  #8 (permalink)  
Antiguo 22/01/2009, 12:33
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Código muy sencillo con error.

GatorV y okram, ambos tienen razón.
Son dos "distintos" al resto.
Jaja.
Cambié el código y quedó perfecto.

Muchísimas gracias a ambos.
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 23:48.