Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

PHP+PostgreSQL, y los tipo de campo varchar array[]... pequeña duda...

Estas en el tema de PHP+PostgreSQL, y los tipo de campo varchar array[]... pequeña duda... en el foro de PostgreSQL en Foros del Web. Hola a todos! Tengo una duda algo sencilla creo, pero tengo 3 dias dando vueltas por sangoogle y otros foros para ver como le hago ...
  #1 (permalink)  
Antiguo 26/05/2006, 13:10
Avatar de alexbariv  
Fecha de Ingreso: septiembre-2003
Ubicación: Mérida, Venezuela
Mensajes: 766
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta PHP+PostgreSQL, y los tipo de campo varchar array[]... pequeña duda...

Hola a todos!

Tengo una duda algo sencilla creo, pero tengo 3 dias dando vueltas por sangoogle y otros foros para ver como le hago sin mucho exito.

Resulta que he creado en mi base de datos un par de campos array varchar[], donde pensaba guardar unos arreglos que tengo en PHP..., pero la cuestion se complico aparentemente...

Al momento de insertar php guardo fue la palabra ARRAY..., por lo que no entiendo como hacer funcionar esta caracteristica.

Algun tuto, guia o consejo ? realmente me urge concluir esa app.


Gracias de antemano!
__________________
"Piensa como una persona de acción y actúa como una persona que piensa."
  #2 (permalink)  
Antiguo 26/05/2006, 14:26
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
No se nada de PostgreSQL, pero creo que tu problema es que estas queriendo guardar directamente el contendido del arreglo, y esto no se puede hacer ya que un arreglo es una estructura compuesta. Seguramente estas armando tu consulta de la siguiente manera:

Código PHP:
<?
$arreglo 
= array(1,2,3); //Define un arreglo con los elementos 1,2 y 3
$consulta "INSERT INTO tu_tabla VALUES(valor1, valor2, $arreglo, valor3, ...)";
?>
Si haces eso, la variable $consulta contendrá el siguiente string:

INSERT INTO tu_tabla VALUES(valor1, valor2, Array, valor3, ...)

No se como pretendes guardar los elementos del arreglo, pero si queres guardar la cadena que forman concatenados (en mi ejemplo la cadena seria "123") tendrias que primero realizar esta concatenación y luego armar la consulta para ingresar los datos. Para eso podés utilizar la función implode():

Código PHP:
<?
$arreglo 
= array(1,2,3); //Define un arreglo con los elementos 1,2 y 3
$cadena implode($arreglo);
$consulta "INSERT INTO tu_tabla VALUES(valor1, valor2, '$cadena', valor3, ...)";
?>
Saludos.
  #3 (permalink)  
Antiguo 26/05/2006, 16:01
Avatar de alexbariv  
Fecha de Ingreso: septiembre-2003
Ubicación: Mérida, Venezuela
Mensajes: 766
Antigüedad: 20 años, 7 meses
Puntos: 0
Muy interesante tu acotacion Notwen, claro que con el implode logre colocar el arreglo separado por cadenas, aunq pensaba que postgre tenia algo especial para hacer esto... a la final funciono...

La razon por la que queria meter un arreglo en la base de datos es porq vi este tipo de dato en postgre, y pues si lo lograba dominar bien iba a ser muy versatil para otros desarrollos ya que me permite ahorrarme campos e incluso tablas.

Ahora se me ha creado un arreglo {8,8,3,8,4,8,5,8}, y ademas otro arreglo de tipo texto enorme...

Se que por la misma potencia de postgre es que es el proyecto preferido para los GPS, pero aun me queda la duda de cuanto performance o cuan eficiente puede ser almacenar datos de esta forma...

Una vez mas gracias.... ;)
__________________
"Piensa como una persona de acción y actúa como una persona que piensa."
  #4 (permalink)  
Antiguo 21/07/2006, 11:37
 
Fecha de Ingreso: junio-2005
Ubicación: Trujillo - Peru
Mensajes: 31
Antigüedad: 18 años, 10 meses
Puntos: 0
usa array_append

Yo estoy haciendo algo parecido .. almaceno unos recibo en un campo varchar[] .. y utilizo la función array_append ... por ejemplo

array_append(crocuo_recibo,$2) ... $2 es el parametro de entrada

teniendo un arreglo tipo {1,2,3,4}

Ahora .. tengo un problema al querer eliminar un recibo del arreglo, no se que función utilizar .. si alguien tiene alguna idea les agradeceria .

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 10:53.