Foros del Web » Programando para Internet » PHP »

guradar varios datos de otra tabla en un solo campo.......!

Estas en el tema de guradar varios datos de otra tabla en un solo campo.......! en el foro de PHP en Foros del Web. hola foreros, he estado tratando de hacer esto, pero no me sale, y claro como siempre acudo a ustedes, en primer lugar estuve leyendo este ...
  #1 (permalink)  
Antiguo 15/08/2007, 10:13
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Exclamación guradar varios datos de otra tabla en un solo campo.......!

hola foreros, he estado tratando de hacer esto, pero no me sale, y claro como siempre acudo a ustedes, en primer lugar estuve leyendo este post, pero no me acaba de salir, ademas que no es igual del todo a mi caso, en este caso lo que tengo que hacer es un UPDATE en mis registros.

tengo en mi tabla documentos un campo responsable al cual debo hacer un UPDATE, pero este debe guardar varios valores (varios nombres)
, los cuales tengo almacenados en otra tabla llamada funcionarios, primero intente hacerlo como dice aqui (http://phptipoftheday.blogspot.com/2...007-07-16.html), pero lo que me guarda es la palabra Array, luego he estado tratando de ver si doy pie con blola con lo del serialize, pero no me sale...........

bueno algo de codigo pa refrescar:

Código PHP:
<?php do { ?>
            <input type="checkbox" name="responsable[]" value="<?php echo array(serialize($row_mostrar_funcionarios['nombre'])); ?>" />
            <?php echo $row_mostrar_funcionarios['nombre']; ?><br /
<?php } while ($row_mostrar_funcionarios mysql_fetch_assoc($mostrar_funcionarios)); ?>
asi me guarda la palabra Array, que tengo mal?

ah! aqui el UPDATE:
Código PHP:
"UPDATE documentos SET indicacion=%s, fecha_cumplimiento=%s, fecha_tramitacion=%s, responsable=%s, tramitado=%s WHERE documento_ID=%s" 
como debo poner en esta consulta lo del serialize? es aqui?

bueno gentes, un saludo y gracias de antemano
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 15/08/2007, 10:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Podrias explicar un poco mas la relacion de lo que quieres obtener? Tambien si pones la estructura de tus dos tablas para que sea mas clara la explicacion.

Saludos.
  #3 (permalink)  
Antiguo 15/08/2007, 11:08
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

hola moderador, bueno, lo que quiero es en el campo responsable guardar los nombres de los funcionarios, puede ser uno, dos o quince, para eso lo que tengo es una consulta a la base de datos para sacar los funcionarios, por eso en el value del checkbox responsable le pongo $row_mostrar_funcionarios['nombre'] que es el valor de los campos que saco de la tabla funcionarios, valla que no se que mas explicar,

a ver, desde el principio, tengo una tabla donde guardo documentos, que pueden estar tramitados o no, a la hora de tramitarlos tengo que ver quien es el responsable de dicho tramite, es aqui donde hago el UPDATE para poder hacer esto, pero como dije antes puede ser uno o varios responsables, y despues claro poder mostrar los responsables:

documento uno.
responsables: pepe, juanito, chuncha, rogertm.

me explico? gracias moderador, usted siempre tan amable
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 15/08/2007, 11:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Entonces lo que debes de hacer primero es imprimir los responsables:
Código PHP:
<?php do { ?>
            <input type="checkbox" name="responsable[]" value="<?php echo $row_mostrar_funcionarios['nombre']; ?>" />
            <?php echo $row_mostrar_funcionarios['nombre']; ?><br /
<?php } while ($row_mostrar_funcionarios mysql_fetch_assoc($mostrar_funcionarios)); ?>
Luego posteriormente en tu script lo rescatas asi:
Código PHP:
$responsables $_POST['responsable'];

// luego para almacenarlo en un campo de texto haces esto:
$responsables implode","$responsables ); 
Ya posteriormente almacenas con tu UPDATE o INSERT en tu base de datos, posteriormente lo que tienes que hacer a la hora de imprimir es hacer echo $row['responsables'], asi te imprime una lista separada por , con los responsables.

Saludos.
  #5 (permalink)  
Antiguo 16/08/2007, 07:54
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

hola moderador, mas o menos entiendo, lo que no veo como construir el UPDATE, mira, aqui lo pongo:
Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "tramitar")) {
  
$updateSQL sprintf("UPDATE documentos SET indicacion=%s, fecha_cumplimiento=%s, fecha_tramitacion=%s, responsable=%s, tramitado=%s WHERE documento_ID=%s",
                       
GetSQLValueString($_POST['indicacion'], "text"),
                       
GetSQLValueString($_POST['fecha_cumplimiento'], "date"),
                       
GetSQLValueString($_POST['fecha_tramitacion'], "date"),
                       
GetSQLValueString($_POST['responsable'], "text"),
                       
GetSQLValueString($_POST['tramitado'], "int"),
                       
GetSQLValueString($_POST['documento_ID'], "int")); 
aun con dreamweaver

un saludo y gracias como siempre
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 16/08/2007, 07:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Cambia esto:
Código PHP:
GetSQLValueString($_POST['responsable'], "text"
Por esto:
Código PHP:
implode"," $_POST['responsable'] ); 
Saludos.
  #7 (permalink)  
Antiguo 16/08/2007, 08:31
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

moderador, hoy tengo el bruto de guardia, no me acaba de salir, mira pongo toda la consulta a ver si podemos entendernos mejor:
Código PHP:
$responsables $_POST['responsable'];

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "tramitar")) {
  
$updateSQL sprintf("UPDATE documentos SET indicacion=%s, fecha_cumplimiento=%s, fecha_tramitacion=%s, responsable=%s, tramitado=%s WHERE documento_ID=%s",
                       
GetSQLValueString($_POST['indicacion'], "text"),
                       
GetSQLValueString($_POST['fecha_cumplimiento'], "date"),
                       
GetSQLValueString($_POST['fecha_tramitacion'], "date"),
                       
implode"," $_POST['responsable'] ), // line 53
                       //GetSQLValueString($_POST['responsable'], "text"),
                       
GetSQLValueString($_POST['tramitado'], "int"),
                       
GetSQLValueString($_POST['documento_ID'], "int")); 
me da error:
Cita:
[16-Aug-2007 10:26:11] PHP Parse error: syntax error, unexpected T_VARIABLE in D:\WAMP_SERVER\wamp\www\regent\modulos\tramitar_do c.php on line 53
pasa lo mismo si pongo o no la linia esta:
Código PHP:
$responsables $_POST['responsable']; 
heeeeeeeeeelp plisssssssss
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 16/08/2007, 08:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Perdon se me paso una coma, la instruccion es asi:
Código PHP:
implode","$_POST['responsable'] ); 
Saludos.
  #9 (permalink)  
Antiguo 16/08/2007, 09:22
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

hola otra vez amigo moderador, ahora no me da ese error, pero cuando doy al boton de enviar en el formulario, el explorador se marea y no hace nada mas, osea, que no me hace el UPDATE, aqui pongo el ultimo error de apache:
Cita:
[Thu Aug 16 11:19:21 2007] [notice] Child 2700: Starting thread to listen on port 80.
gracias por la ayuda, como siempre
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 16/08/2007, 09:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Ese no es un error de PHP, y si se cuelga esque hay algo que esta mal aparte del codigo, necesitas hacer un debug paso por paso de tu codigo para que veas donde puede estar el error.

Saludos.
  #11 (permalink)  
Antiguo 16/08/2007, 09:57
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

bueno, acabo de hacer eso con el phpDesigner 2007 () y el unico error que me da es el siguiente:
Cita:
Type:
Fatal Error

Line:
63

Error:
Fatal error: Call to undefined function mysql_select_db() in: D:\\WAMP_SERVER\wamp\www\regent\modulos\tramitar_d oc.php on line 63
aqui dicha linia:
Código PHP:
mysql_select_db($database_regent_cnx$regent_cnx); 
bueno, no creo que esto sea un verdadero problema, y no hay otra manera de hacr lo moderador? usando el serialize, como bien has explicado en este otro post.

gracias
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #12 (permalink)  
Antiguo 16/08/2007, 10:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

mmm tienes soporte para MySQL? Esa linea te indica que la funcion mysql_select_db no existe.

Tienes que habilitar el soporte para MySQL para que pueda servir tu query.

Saludos.
  #13 (permalink)  
Antiguo 16/08/2007, 10:16
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

OH...! a ver, estoy trabajando local, en mi PC del trabajo, uso WAMP - version 1.7.2, PHP - version 5.2.3, MySQL - version 5.0.41, y claro esto biene con todo, incluido phpmyadmin

ahora si me quede frito moderador, jajajaa

que crees que pueda pasar? por que asi llevo largo rato (mas de un mes que trabajo aqui) y no creo haber tenido problemas con hacer INSERT y/o UPDATES en las cosas que estoy haciendo, a no ser problemas ya mios de programacion que no sepa como se hacen, pero creo que si tengo soporte en el server local para MySQL, o estoy equivocado, por fa ayuda.

y gracias otra vez GatorV
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #14 (permalink)  
Antiguo 16/08/2007, 10:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Es raro que el phpDesigner te de ese error, solo que use un php.ini propio en cuyo casi vas a tener que buscar cual es y habilitar el soporte para MySQL.

Saludos.
  #15 (permalink)  
Antiguo 16/08/2007, 10:27
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

pero bueno, solo lo he usado aqui para hacer el debug, por que en realidad estoy trabajando con dreamweaver 8.
que puedo hacer? y como dije antes, no hay otra forma de hacerlo usando el serilize?

bueno, intentare a ver y luego posteo, que seguro me dara algun palo

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #16 (permalink)  
Antiguo 17/08/2007, 09:30
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

un saludo, moderador, no acabo de dar pie con bola con este asunto, he intentado varias cosas pero nada, aqui pongo lo ultimo que he intentado a ver si me puedes ayudar,

en el formulario tengo esto:
Código PHP:
<?php do { ?>
            <input type="checkbox" name="responsable[]" value="<?php echo $row_mostrar_funcionarios['nombre']; ?>" />
            <?php echo $row_mostrar_funcionarios['nombre']; ?><br />
        <?php } while ($row_mostrar_funcionarios mysql_fetch_assoc($mostrar_funcionarios)); ?>
y el UPDATE asi:
Código PHP:
$responsables = array ($_POST['responsable']);
$trozos explode (" "$responsables);

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "tramitar")) {
  
$updateSQL sprintf("UPDATE documentos SET indicacion=%s, fecha_cumplimiento=%s, fecha_tramitacion=%s, ( '" serialize$trozos ) . "'), tramitado=%s WHERE documento_ID=%s",
                       
GetSQLValueString($_POST['indicacion'], "text"),
                       
GetSQLValueString($_POST['fecha_cumplimiento'], "date"),
                       
GetSQLValueString($_POST['fecha_tramitacion'], "date"),
                       
implode","$_POST['responsable'] ),
                       
//GetSQLValueString($_POST['responsable'], "text"),
                       
GetSQLValueString($_POST['tramitado'], "int"),
                       
GetSQLValueString($_POST['documento_ID'], "int"));

  
mysql_select_db($database_regent_cnx$regent_cnx);
  
$Result1 mysql_query($updateSQL$regent_cnx) or die(mysql_error());

lo pongo todo, no valla ser que el error este mas arriba,

bueno espero por ayuda, AH...! y no solo del moderador, que esto parece una llamada de larga distancia, jajaja.

saludos y gracias
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #17 (permalink)  
Antiguo 17/08/2007, 09:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: guradar varios datos de otra tabla en un solo campo.......!

Tu problema es que ya estas procesando tu array de una forma incorrecta, prueba asi:
Código PHP:

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "tramitar")) {
  
$updateSQL sprintf("UPDATE documentos SET indicacion=%s, fecha_cumplimiento=%s, fecha_tramitacion=%s, responsable='%s', tramitado=%s WHERE documento_ID=%s",
                       
GetSQLValueString($_POST['indicacion'], "text"),
                       
GetSQLValueString($_POST['fecha_cumplimiento'], "date"),
                       
GetSQLValueString($_POST['fecha_tramitacion'], "date"),
                       
implode","$_POST['responsable'] ),
                       
GetSQLValueString($_POST['tramitado'], "int"),
                       
GetSQLValueString($_POST['documento_ID'], "int"));

  
mysql_select_db($database_regent_cnx$regent_cnx);
  
$Result1 mysql_query($updateSQL$regent_cnx) or die(mysql_error());

Como nota adicional, tenias mal tu sentencia UPDATE, y el codigo de arriba era irrelevante.

Saludos.
  #18 (permalink)  
Antiguo 17/08/2007, 09:44
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: guradar varios datos de otra tabla en un solo campo.......!

YEEEESSSSSSSSSSSS...!

gracias amigo
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
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 11:45.