Foros del Web » Programando para Internet » PHP »

porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() expects param

Estas en el tema de porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() expects param en el foro de PHP en Foros del Web. En la linea que tiene el comentario me sale el error y no se porque.. me podrian ayudar por favor ..! $consulta = mysql_query("Select numeroExpediente,ciBeneficiario,nombreBeneficiario ...
  #1 (permalink)  
Antiguo 03/01/2012, 09:17
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 9 meses
Puntos: 1
porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() expects param

En la linea que tiene el comentario me sale el error y no se porque.. me podrian ayudar por favor ..!

$consulta = mysql_query("Select numeroExpediente,ciBeneficiario,nombreBeneficiario , idMunicipios,nombreRubro,plazo,condicion,asistenci aTecnica,tipoFondoRiesgo,mon
toFondoRiesgo,imprevisto,has,montoAprobado,DATE_FO RMAT(fechaVcto,'%Y/%m/%d') as fechaVcto,pPartida,DATE_FORMAT(fechapPartida,'%Y/%m/%d') as fechapPartida,sPartida, DATE_FORMAT(fechasPartida,'%Y/%m/%d') as fechasPartida, tPartida, DATE_FORMAT(fechatPartida,'%Y/%m/%d') as fechatPartida From exp Where numeroExpediente = '$numeroExpediente'");
if ($registro=mysql_fetch_assoc($consulta)) {

$query = mysql_query("SELECT a.numeroExpediente, a.fechaDesde, a.fechaHasta, a.dias, a.monto, a.interesOrdinario, a.interesOrdinarioLuegoVcto, a.interesMoratorio, b.fechaVcto, DATEDIFF(b.fechaVcto,a.fechaHasta) AS fechaV FROM detalleliquidaciones a, exp b WHERE a.numeroExpediente = b.numeroExpediente");
$int_tv=0;
/*EN ESTA LINEA ERROR*/
while ($rec=mysql_fetch_assoc($query)) {
$fechaV = $rec[9];
if ($fechaV<0){
$interesV = $rec[4]*($fechaV/360)*0.0869;
$interesM = $rec[4]*($fechaV/360)*0.03;
}else{
$interesV = 0;
$interesM = 0;
}
$rec['interesV']= $interesV;
$rec['interesM']= $interesM;

$int_tv=$int_tv+$rec['interesV'];

$sal[]=$rec['interesV']."-".$rec['interesM']."-".$int_tv;
}
  #2 (permalink)  
Antiguo 03/01/2012, 09:22
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 13 años
Puntos: 23
Respuesta: porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() ex

Hola
Nena, lo que pasa es que antes de ejecutar la función mysql_fetch_assoc, debes ejecutar tu consulta (en las primeras líneas que muestras)

Código PHP:
Ver original
  1. $query= mysql_query($consulta, $vinculo) or die(mysql_error());
  2. //agrégale el die para saber que error da

Código PHP:
Ver original
  1. $fila= mysql_fetch_assoc($query);

El problema es que la consulta arroja error (devuelve FALSE)

Escribe que error te arroja

Última edición por ElSiniestro; 03/01/2012 a las 09:30
  #3 (permalink)  
Antiguo 03/01/2012, 09:35
Avatar de afrodriguez70  
Fecha de Ingreso: octubre-2011
Ubicación: Tulua-Colombia
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() ex

Creo que es porque haces la consulta pero no le pasas la conexion a la base de datos por eso no te llega nada.

$query = mysql_query("SELECT a.numeroExpediente, a.fechaDesde, a.fechaHasta, a.dias, a.monto, a.interesOrdinario, a.interesOrdinarioLuegoVcto, a.interesMoratorio, b.fechaVcto, DATEDIFF(b.fechaVcto,a.fechaHasta) AS fechaV FROM detalleliquidaciones a, exp b WHERE a.numeroExpediente = b.numeroExpediente",<<Falta la variable o instancia de conexion a la BD>>);
__________________
Si el hombre no ha descubierto nada por lo que morir, no es digno de vivir. <<Martin Luther King>>
  #4 (permalink)  
Antiguo 03/01/2012, 09:51
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 13 años
Puntos: 23
Respuesta: porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() ex

afrodriguez, el parámetro de conexión es opcional en mysql_query

Me faltó decirte que hay que pasarle la conexión pero al mysql_error así:

Código PHP:
Ver original
  1. mysql_error($vinculo)

Cuéntanos a ver que tal te fue
  #5 (permalink)  
Antiguo 03/01/2012, 09:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() ex

//ESTA ES LA FUNCION COMPLETA CREO QUE ASI COMO LO PUSE PRIMERO LA CONSULTA Y DESPUES LA MYSQL_FETCH_ASSOC// PORFAVOR AYUDENME


function buscarExpediente() {
$numeroExpediente = $_POST['numeroExpediente'];
if ($numeroExpediente!="") {
$consulta = mysql_query("Select numeroExpediente,ciBeneficiario,nombreBeneficiario , idMunicipios,nombreRubro,plazo,condicion,asistenci aTecnica,tipoFondoRiesgo,montoFondoRiesgo,imprevis to,has,montoAprobado,DATE_FORMAT(fechaVcto,'%Y/%m/%d') as fechaVcto,pPartida,DATE_FORMAT(fechapPartida,'%Y/%m/%d') as fechapPartida,sPartida, DATE_FORMAT(fechasPartida,'%Y/%m/%d') as fechasPartida, tPartida, DATE_FORMAT(fechatPartida,'%Y/%m/%d') as fechatPartida From exp Where numeroExpediente = '$numeroExpediente'")or die(mysql_error());;
if ($registro=mysql_fetch_assoc($consulta)) {

$query = mysql_query("SELECT a.numeroExpediente, a.fechaDesde, a.fechaHasta, a.dias, a.monto, a.interesOrdinario, a.interesLuegoVcto, a.interesMoratorio, b.fechaVcto, DATEDIFF(b.fechaVcto,a.fechaHasta) AS fechaV FROM detalleliquidaciones a, exp b WHERE a.numeroExpediente = b.numeroExpediente");
$int_tv=0;
while ($rec=mysql_fetch_assoc($query)) {
$fechaV = $rec[9];
if ($fechaV<0){
$interesV = $rec[4]*($fechaV/360)*0.0869;
$interesM = $rec[4]*($fechaV/360)*0.03;
}else{
$interesV = 0;
$interesM = 0;
}
$rec['interesV']= $interesV;
$rec['interesM']= $interesM;

$int_tv=$int_tv+$rec['interesV'];

//$sal[]=$rec['interesV']."-".$rec['interesM']."-".$int_tv;
}

$salida = $registro['numeroExpediente']."|".$registro['ciBeneficiario']."|".$registro['nombreBeneficiario']."|".$registro['idMunicipios']."|".$registro['nombreRubro']."|".$registro['plazo']."|".$registro['condicion']."|".$registro['asistenciaTecnica']."|".$registro['tipoFondoRiesgo']."|".$registro['montoFondoRiesgo']."|".$registro['imprevisto']."|".$registro['has']."|".$registro['montoAprobado']."|".$registro['fechaVcto']."|".$registro['pPartida']."|".$registro['fechapPartida']."|".$registro['sPartida']."|".$registro['fechasPartida']."|".$registro['tPartida']."|".$registro['fechatPartida'];

echo $salida;
//echo $sal;
} else {
echo "{failure:true}";
}
} else {
echo "{failure:true}";
}
}
  #6 (permalink)  
Antiguo 03/01/2012, 10:22
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 13 años
Puntos: 23
Respuesta: porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() ex

Hola de nuevo
Después del if escribe esto a ver que tal te da:

Código PHP:
Ver original
  1. mysql_free_result($consulta);

Y encierra el código que escribes en etiquetas Highlight
  #7 (permalink)  
Antiguo 03/01/2012, 10:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 38
Antigüedad: 13 años, 9 meses
Puntos: 1
me sale el mismo error =(

el error que me sale ahora es este Notice: Undefined offset: 9 in
es como que no me obtiene el valor en la posiciòn nueve.. bueno ustedes saben màs que yo

es como que esto $fechaV = $rec[9]; no me lo lee

ya lo solucioné lo que pasa es que tenia que colocarlo asi $fechaV = $rec['fechaV']; muchas gracias amigos besos

Última edición por GatorV; 03/01/2012 a las 11:06
  #8 (permalink)  
Antiguo 03/01/2012, 10:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: porqué me sale este error en esta consulta Warning: mysql_fetch_assoc() ex

En la segunda, lo primero sería saber si efectivamente hay registros devueltos por ese JOIN (la coma).
Código MySQL:
Ver original
  1.     a.numeroExpediente,
  2.     a.fechaDesde,
  3.     a.fechaHasta,
  4.     a.dias,
  5.     a.monto,   
  6.     a.interesOrdinario,
  7.     a.interesLuegoVcto,
  8.     a.interesMoratorio,
  9.     b.fechaVcto,
  10.     DATEDIFF(b.fechaVcto,a.fechaHasta) fechaV
  11.     detalleliquidaciones a, exp b
  12.     a.numeroExpediente = b.numeroExpediente;

En definitiva el error central, como ya te han explicado con otras palabras, es que tu estas asumiendo que las consultas han funcionado bien, pero eso es algo que no estás comprobando en ninguna parte.
Como mínimo deberías usar un if contra el recurso de resultado de la consulta, para ssaber si tienes algo con qué hacer el fetch_assoc().
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: expects, mysql, registro, sql, warning
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 19:55.