Foros del Web » Programando para Internet » PHP »

duda acerca de varchar y busqueda en tablas

Estas en el tema de duda acerca de varchar y busqueda en tablas en el foro de PHP en Foros del Web. Buenas a todos. Tengo una duda con respecto a la opción de varchar para guardar datos. En estos momentos estoy creando un listado donde el ...
  #1 (permalink)  
Antiguo 05/07/2011, 22:07
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Pregunta duda acerca de varchar y busqueda en tablas

Buenas a todos. Tengo una duda con respecto a la opción de varchar para guardar datos. En estos momentos estoy creando un listado donde el usuario debe escoger su pais y la respectiva provincia por medio de menus desplegables. En el codigo que coloco abajo muestro como lo implemente. En la tabla paises estan el listado completo de paises y un id que permite relacionarlo con una tabla llamada estados. Por ejemplo si afganistan al ser el primer pais tiene un id de 1 este id se puede relacionar con la columna relacion de la tabla estados cuyo id sea igual a 1 para que solo me muestre los estados correspondientes a afganistan y no despegar los demas.

La primera duda que tengo es cuando guardo paises que tienen mas de una palabra (ejemplo american samoa). Cada vez que elijo un pais que tiene un espacio de por medio solo me guarda la palabra american para este ejemplo en concreto. Trate de cambiar la variable varchar por text pensando que eso podia generar el problema pero me dio igual.

La segunda duda que tengo es para realizar la consulta del segundo listado (Es decir la de estados o provincias). Como hago para que al seleccionar un pais cualquiera el valor de id lo guarde una variable? Despues de esto: como se hace la consulta usando tablas cruzadas? Hace rato no hago este tipo de consultas y la verdad lo he olvidado un poco.

De antemano doy gracias por la colaboración prestada.

Código PHP:
include ("inc/usarBD.php"); 
$consultaPaises="SELECT * FROM paises;"
$hacerConsultaPaises=mysql_query($consultaPaises,$conexion); 
$nPaises=mysql_num_rows($hacerConsultaPaises); 
if (
nPaises>0){ 
echo(
"<select name='pais' id='pais'>"); 
while (
$paismysql_fetch_array($hacerConsultaPaises,MYSQL_ASSOC)){ 
echo(
"<option value=".$pais["pais"].">".$pais["pais"]."</option>"); 

echo (
"</select>"); 

  #2 (permalink)  
Antiguo 05/07/2011, 22:32
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: duda acerca de varchar y busqueda en tablas

Hola amigo, bueno son muchas dudas.

1.- La problematica de que el campo tipo VARCHAR no te guarde una cadena con espacios (Siempre y cuando el tamaño Varchar sea adecuado), no es culpa del campo o del sistema de gestión de datos, así que no lo vas a solucionar cambiando el VARCHAR a un TEXT.
Este problema es de tu script, probablemente estes haciendo "algo inconcientemente" con la cadena o una mala concatenación al momento de insertar la cadena en la sentencia SQL.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 06/07/2011, 11:29
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: duda acerca de varchar y busqueda en tablas

Muchas gracias por responder tan pronto. Revisando lo que comentas primero quiero comentar que el varchar lo puse en su valor maximo (255) para que maneje todo el rango y no genere problemas. El script lo probe inicialmente con variables tipo texto y me funcionaba perfectamente, por tanto yo creo que el problema se estaba originando al meter esta función de esta manera:
Código PHP:
echo("<option value=".$pais["pais"].">".$pais["pais"]."</option>"); 
Le hice un pequeño cambio y lo que hice fue meterle en el value no el nombre del pais sino el id correspondiente de esta manera:
Código PHP:
echo("<option value=".$pais["id"].">".$pais["pais"]."</option>"); 
Una vez que ya el otro script recibe ese valor de id unico simplemente vuelvo a realizar la consulta y ya obtengo el nombre del pais sin ningun tipo de limitación. Igual como en un principio me parece que deberia funcionar bien de ambas maneras dejo el tema abierto por si alguien se le ocurre que puede estar ocurriendo.

Con respecto a lo de las listas dinamicas yo ya habia hecho algo parecido usando javascript y matrices pero no sabia como modificarlo usando bases de datos. Sin embargo encontre la solución en dos paginas web aparte:

URL="http://www.php-hispano.net/archivos/Articulos/310/1/Listas-Vinculadas-con-PHP1.pdf"]http://www.php-hispano.net/archivos/Articulos/310/1/Listas-Vinculadas-con-PHP1.pdf[/URL]
[URL="http://www.tallerwebmaster.com/tutorial/listas-dinamicas-enlazadas/77/"]http://www.tallerwebmaster.com/tutorial/listas-dinamicas-enlazadas/77/[/URL]
Estan muy bien explicadas así que no ahondare mucho en detalles, simplemente combinan html, javascript, php y mysql. Espero que sean de utilidad para alguien que lo necesite.
  #4 (permalink)  
Antiguo 06/07/2011, 11:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda acerca de varchar y busqueda en tablas

El problema realmente era que no estas escribiendo HTML válido, pues los atributos deben llevar comillas dobles para respetar los espacios.
Código HTML:
<option value="valor con espacios">texto</option> 
En ningún momento era problema del varchar.

Te invito a leer lo siguiente, para que aprendas a manejar bien las comillas:
http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/07/2011, 11:40
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: duda acerca de varchar y busqueda en tablas

exactamente como te dice Pateketrueke..

La forma correcta debio haber sido de ésta forma:

Código HTML:
Ver original
  1. echo('<option value=" '.$pais["pais"]. ' ">'.$pais["pais"].'</option>');

O escapando el par correspondiente de comillas

\""$pais["pais"]."\"

Saludos.
Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #6 (permalink)  
Antiguo 06/07/2011, 12:07
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: duda acerca de varchar y busqueda en tablas

Gracias por las respuestas. Acabo de darme cuenta del error y en verdad era muy bobo. Siempre me dan duro las comillas :P Lo gracioso del caso es como me retornaba algo en la base de datos(asi fuera incompleto) no me habia percatado del error.

Una vez mas gracias.

Etiquetas: países, tablascruzadas, varchar
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 21:55.