Foros del Web » Programando para Internet » PHP »

Problema: No recupera la consulta MySQL con PHP

Estas en el tema de Problema: No recupera la consulta MySQL con PHP en el foro de PHP en Foros del Web. Hola amigos! Tengo el siguiente problema : Intento mostrar los resultados de una consulta SQL en PHP, pero la sentencia no me arroja ningún resultado, ...
  #1 (permalink)  
Antiguo 10/12/2009, 13:02
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Problema: No recupera la consulta MySQL con PHP

Hola amigos!

Tengo el siguiente problema :

Intento mostrar los resultados de una consulta SQL en PHP, pero la sentencia no me arroja ningún resultado, ni siquiera entra al WHILE, La consulta está bién la he probado en phpmyadmin y me arroja los dos resultados
id_calibre = 32
valor_porcentual = 1.9

Pero desde PHP no me arroja resultados ninguno, si borro id_calibres en el Filtro, funciona bien. pero no es mi objetivo listarlos todos, sino uno.

La variable $calibres, recibe el valor bien. Todas las demás también
Bueno dejo mi script, espero que me puedan ayudar.

Código PHP:
<?php
session_start
();
require_once 
'../../config/mysql.php';
$dbCon Conectarse();


echo 
'productor :'.$productor    $_GET['productor'];
echo 
'<br>';
echo 
'especie: '.$especie    $_GET['especie'];
echo 
'<br>';
echo 
'variedad: '.$variedad    $_GET['variedad'];
echo 
'<br>';
echo 
'etapa: '.$etapa        $_GET['etapa'];
echo 
'<br>';
echo 
'calibre: '.$calibre    $_GET['calibre'];


$queryCalibre mysql_query("SELECT id_calibre,valor_porcentual FROM criterio_calibres WHERE CONVERT(`criterio_calibres`.`id_especie` USING utf8)='$especie' AND CONVERT(`criterio_calibres`.`id_variedad` USING utf8) = '$variedad' AND CONVERT(`criterio_calibres`.`id_productor` USING utf8) = '$productor' AND `criterio_calibres`.`etapa` = $etapa AND  `criterio_calibres`.`id_calibre` = $calibre "$dbCon)or die(mysql_error());
while(
$rowCalibre mysql_fetch_array($queryCalibre)){
    echo 
$ResultadoCalibre $rowCalibre['id_calibre'];
}
echo 
'<br>';
echo 
'que pasa?: '.$ResultadoCalibre;
?>

Gracias
  #2 (permalink)  
Antiguo 10/12/2009, 13:07
 
Fecha de Ingreso: octubre-2009
Mensajes: 125
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema: No recupera la consulta MySQL en PHP

Cita:
Iniciado por lennhix Ver Mensaje
Código PHP:
<?php

while($rowCalibre mysql_fetch_array($queryCalibre)){
    echo 
$ResultadoCalibre $rowCalibre['id_calibre'];
?>
ese id_calibre de donde lo obtienes seria mejor que lo almazenaras en una valriable y quedaria algo asi

echo $ResultadoCalibre = $rowCalibre[$var_id_calibre];
  #3 (permalink)  
Antiguo 10/12/2009, 13:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema: No recupera la consulta MySQL con PHP

Muchas gracias amigo por la ayuda.

Bueno ese id_calibre lo obtengo de la consulta SQL : SELECT id_calibre

Para obtener ese valor anteriormente lo pase por GET :

Código PHP:
echo 'calibre: '.$calibre    $_GET['calibre']; 
y luego lo comparo en la consulta para que me arroje ese valor que se encuentra en MySQL

Pero no comprendo el error!
La consulta está bien, pero no entra al while, si imprimo la variable que dio la respuesta de la consulta:

echo $queryCalibre;
Resource id #4

Arroja un resultado. pero este no entra al while :S, estoy confundido.

Si borro
Código PHP:
   `criterio_calibres`.`id_calibre` = $calibre 
de la consulta, entra al while sin problemas y me da la lista de resultados, pero no filtra el id_calibre y eso no cumple con lo que necesito.
  #4 (permalink)  
Antiguo 10/12/2009, 13:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 125
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema: No recupera la consulta MySQL con PHP

Cuando te aparece un Resource # 4 significa que ahi se encuentran 4 resultados es decir una cadena trata algo asi
echo $queryCalibre[0];
  #5 (permalink)  
Antiguo 10/12/2009, 14:13
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema: No recupera la consulta MySQL con PHP

Ya logre comprender porque no entra al while

Era que cuando le enviaba un calibre por ejemplo el 200 y este no estaba en la lista de los calibres del campo en la base de datos, no entra al while

$calibre = 200 (este no esta en mi campo de la base de datos)

Pero si le agrego un calibre que si este, entra al while y lo lista sin problemas.

Pero no me parece que esté funcionando bien :S

Porqué si no esta el valor en la base de datos, debería entrar al while también y mostrarme un echo diciendo que no existe el valor.

El problema es que yo necesito que ingrese al while porque dentro del while tendré que hacer una condición if y comparar si existe el calibre o no.

Que extraño!
  #6 (permalink)  
Antiguo 10/12/2009, 14:34
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema: No recupera la consulta MySQL con PHP

Bueno al final lo que hice fue sacar el WHILE.

Ahora me funciona bien con este algoritmo:


Código PHP:
if($_GET['productor'] && $_GET['especie'] && $_GET['variedad'] && $_GET['etapa'] && $_GET['calibre']){
$productor    $_GET['productor'];
$especie    $_GET['especie'];
$variedad    $_GET['variedad'];
$etapa        $_GET['etapa'];
$calibre    $_GET['calibre'];

$consultarCalibre mysql_query("SELECT id_calibre FROM `criterio_calibres` WHERE CONVERT(`criterio_calibres`.`id_especie` USING utf8) = '$especie' AND CONVERT(`criterio_calibres`.`id_productor` USING utf8) = '$productor' AND CONVERT(`criterio_calibres`.`id_variedad` USING utf8) = '$variedad' AND `criterio_calibres`.`etapa` = $etapa AND `criterio_calibres`.`id_calibre` = $calibre LIMIT 1"$dbCon)or die(mysql_error());

$rowCalibre mysql_fetch_array($consultarCalibre);

    if(!
$rowCalibre['id_calibre']){
        
$valor_porcentual 0;
        
mysql_query("INSERT INTO criterio_calibres(id_especie, id_productor, id_variedad, etapa, id_calibre, valor_porcentual) VALUES ('$especie', '$productor', '$variedad', $etapa, $calibre, $valor_porcentual)"$dbCon)or die(mysql_error());
    }

    if(
$rowCalibre['id_calibre'] == $calibre){
        
mysql_query("DELETE FROM `criterio_calibres` WHERE CONVERT(`criterio_calibres`.`id_especie` USING utf8) = '$especie' AND CONVERT(`criterio_calibres`.`id_productor` USING utf8) = '$productor' AND CONVERT(`criterio_calibres`.`id_variedad` USING utf8) = '$variedad' AND `criterio_calibres`.`etapa` = $etapa AND `criterio_calibres`.`id_calibre` = $calibre LIMIT 1"$dbCon)or die(mysql_error());
    }    



Saludos!!
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:31.