Foros del Web » Programando para Internet » PHP »

Problemas con consulta de valores varchar

Estas en el tema de Problemas con consulta de valores varchar en el foro de PHP en Foros del Web. Hola a todos, tengo un problemita en una consulta que estoy realizando, sucede que tendo la siguiente tabla Nombre | Factura | Codigo uno 1234 ...
  #1 (permalink)  
Antiguo 18/08/2009, 10:20
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Problemas con consulta de valores varchar

Hola a todos, tengo un problemita en una consulta que estoy realizando, sucede que tendo la siguiente tabla

Nombre | Factura | Codigo

uno 1234 430000
dos R121 430001
tres 2019 430002

Bueno mas o menos asi la tabla cuyos datos son todos varchar.
El problema es que cuando hago la siguiente consulta:

$result=mysql_query("select nombre, factura, codigo from c_albven where factura=$factura",$link);
$row = mysql_fetch_array($result);
$cliente=$row[nombre];

solo me muestra los datos donde factura sea un numero, es decir si factura tiene un valor no numerico como es el caso de la segunda fila no me realiza la consulta, ni siquiera marca un error, simplemente no me muestra nada de nada,
en cambio con los otras filas, las muestra sin ni un problema.
alguien sabe lo que esta pasando?
por favor necesito su ayuda, gracias por su atencion.
  #2 (permalink)  
Antiguo 18/08/2009, 10:32
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: Problemas con consulta de valores varchar

Debes envolver con comillas:
Código MySQL:
Ver original
  1. SELECT nombre, factura, codigo FROM c_albven WHERE factura = '$factura';
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 18/08/2009, 10:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Problemas con consulta de valores varchar

gracias por tu pronta respuesta, ya lo hice solo que ahora ya ni con los valores enteros jala, alguna otra sugerencia?
  #4 (permalink)  
Antiguo 18/08/2009, 10:59
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Problemas con consulta de valores varchar

Prueba con esto:
Código PHP:
$MiTabla="Mi_Tabla";
$factura="12345";
$result="SELECT * FROM {$MiTabla} WHERE factura='{$factura}';";
###
$row mysql_fetch_array($result);
$cliente=$row[0]; 
  #5 (permalink)  
Antiguo 18/08/2009, 11:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Problemas con consulta de valores varchar

Gracias por la respuesta pero tampoco sirvio, que mala pata, les agradesco su ayuda, alguna otra idea?
  #6 (permalink)  
Antiguo 18/08/2009, 11:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problemas con consulta de valores varchar

Tu problema es de PHP, no de MySQL. Lo que estás haciendo mal es la construcción de la sentencia, no su sintaxis. Deberías consultarlo en el foro de PHP.
En cualquier caso, lo que debe quedar dentro de tu sentencia es el valor R121 encerrado entre apóstrofes:
Código sql:
Ver original
  1. SELECT nombre, factura, codigo FROM c_albven WHERE factura = 'R121';
El cómo logres que la sentencia contenga esos apóstrofes depende del lenguaje de programación, por o que te recomiendo consultar en el foro correcto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 18/08/2009, 11:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Problemas con consulta de valores varchar

ok, gracias por la sugerencia, otra cosa, lo que pasa es que $factura habia adquirido de tipo char y al hacer la consulta esta comparando con un varchar, creo qeu puede haber ahi un error, creen que sea ese el error?
  #8 (permalink)  
Antiguo 18/08/2009, 11:58
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Problemas con consulta de valores varchar

Gnzloyo tiene razon. Tu consulta esta bien hecha, debes verificar que tu codigo php tambien lo este. si vas a ponerle el nombre del campo a tu resultado acuerdate que debe llevar comillas tambien.

Código:
		
                $query = "SELECT * FROM {$tabla} WHERE factura = '{$factura}'";
		$result = mysql_query($query);
		$row=mysql_fetch_array($result);
        	$nresult = mysql_num_rows($result);
	        if($nresult == NULL){
                     send('No existe');
                } else {
   	            $cliente = $row['nombre'];
               send($cliente);
                }
Este codigo esta probado. Debe funcionar.

Última edición por nonpublic; 18/08/2009 a las 12:09
  #9 (permalink)  
Antiguo 18/08/2009, 12:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problemas con consulta de valores varchar

Cita:
Iniciado por asor2303 Ver Mensaje
ok, gracias por la sugerencia, otra cosa, lo que pasa es que $factura habia adquirido de tipo char y al hacer la consulta esta comparando con un varchar, creo qeu puede haber ahi un error, creen que sea ese el error?
No. Eso no tiene por qué afectar el resultado de la consulta. Lo importante en ese caso es contenido de la variable y del campo. Entre CHAR y VARCHAR, MySQL hace conversiones implícitamente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 18/08/2009, 13:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Problemas con consulta de valores varchar

ps bueno, continuo con este problema, cambie algunas variables y le doy directamente a la consulta el valor 'R121' y me produce este error:

errorUnknown column 'R121' in 'where clause'

a que se debe, alguien sabra?, por que de hecho en la tabla si se encuentra ese dato, no s epor que no lo reconoce
  #11 (permalink)  
Antiguo 18/08/2009, 13:56
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: Problemas con consulta de valores varchar

Porque no lo colocas entre comillas. Por eso lo interpreta como una columna y no como texto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 18/08/2009, 14:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Problemas con consulta de valores varchar

ok, ya probe eso pero sigue sin dar señales de vida , no quiere hacer la consulta y ya no se que puede ser, ya le estoy metiendo los valores que quiero directamente y no me da lo que necesito.
ayuda porfavor.


$link1=conn_eurowin_2009_rom();
$factura=R65;

$result1=mysql_query("select cliente, fecha_fac, pedido from c_albven where factura='{$factura}'",$link1);
if (!$result1) {
die('Invali query: hay un un error' . mysql_error()); //Aqui no me marca ni un error
}
$row1 = mysql_fetch_array($result1);
$cliente1=$row1[cliente];
echo $cliente1;
echo $factura;
if($cli_auth=!$cliente1)//Pero aqui como la consulta anterior no es correcta mata el avance
{die("CL: No está autorizado para ver este documento");}
  #13 (permalink)  
Antiguo 18/08/2009, 17:11
Avatar de nonpublic  
Fecha de Ingreso: agosto-2009
Mensajes: 240
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Problemas con consulta de valores varchar

Pega tu script Php completo para poder ayudarte.
  #14 (permalink)  
Antiguo 19/08/2009, 08:14
 
Fecha de Ingreso: agosto-2009
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Problemas con consulta de valores varchar

Hola a todo mundo, les doy muchas gracias por darme una respuesta, y pues informo que pude encontrar el problema, este es por que el programa que almacena los datos efectivamente al guardar como datos varchar y otros como char, afectaba a la hora de hacer la comparación en la sentencia sql, lo único que hice fue esto:

$factura="' R121'";

Como es un dato tipo char[10], guarda tambien los espacios y al darle este formato, fijense bien que son comillas dobles y adentro entre comillas simples el valor junto con los espacios, todo jalo perfecto, ahora solo tendre que hacer unos cambios para que se omita este detalle , gracias a todos, yo creo que este tema queda cerrado,
saludo a todos.
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 18:57.