Foros del Web » Programando para Internet » PHP »

Guadar campos

Estas en el tema de Guadar campos en el foro de PHP en Foros del Web. Holas a todos, no se q tan rstupida sea esta pregunta pero hay voy.. tengo unos combo box q lleno de una consulta q traigo ...
  #1 (permalink)  
Antiguo 19/07/2006, 09:09
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
Guadar campos

Holas a todos,

no se q tan rstupida sea esta pregunta pero hay voy..

tengo unos combo box q lleno de una consulta q traigo de la base dadatos.

Código PHP:
<?

/* Conexion a la base de datos */
include("Conectarse.php");
$conn=Conectarse();

// Obtiene el registro (fila) que acaba de ser agregada.

$query="SELECT * FROM contratos order By oferta";
$result=pg_Exec($conn,$query);

if (
$row=pg_fetch_array($result))
{
    
?>
    Proyecto: <select name="contrato">
    <?
    
do
     {
        
$contrato $row["contrato"];
        
?> 
        <option value=" <? echo $contrato;?> "> <? echo $contrato
     }
     while(
$row=pg_fetch_array($result));
?> </select>

lo que quiero es saber como hago para q el usuario tenga la opcion de agregar un vampo q no este en la base de datos y este se agregue y aparezca para nuevas consultas.. me explico..

gracias
__________________
.-._.-. [email protected]_.-.
  #2 (permalink)  
Antiguo 19/07/2006, 09:19
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
le pides el nombre del campo, tipo, tamaño si es necesario, si va a ser null o no, valor por defecto y la tabla a la que se va a añadir y ejecutas la consulta al recargar la pagina:

ALTER TABLE $tabla ADD $campo $tipo [UNSIGNED] [NOT] NULL ...
entre corchetes lo que puede estar o no dependiendo..

si luego ya quieres meterle que sea autoincrement o key, consulta completa:

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (c);


mas o menos algo asi..
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 19/07/2006, 09:21
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
para abregar deberias tener un formulario donde el usuario pueda cargar almenos el nombre del nuevo "contrato"
<form action="cargar.php" method="post">contrato<input type="text" name="contrato">
<input type="submit"></form>

entonces en cargar.php deberias tener una consulta para guardar el nombre del nuevo contrato
mysql_query("INSERT INTO contratos (contrato) VALUES ('".mysql_real_scape_string($_POST['contrato'])."')",$conexion);

basicamente con esto podrias solucionarlo, es importante la funcin mysql_real_scape_string() por el echo q un usuario generalmente puede cargar cosas muy impensadas, por ende debemos escapar la cadena enviada por este para q no genere errores en la base de datos
saludos y espero te sirva
  #4 (permalink)  
Antiguo 19/07/2006, 09:24
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
oye disculpa pero no entendi mucho lo q me explicas...
__________________
.-._.-. [email protected]_.-.
  #5 (permalink)  
Antiguo 19/07/2006, 09:25
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
a quien no entiendes.. a él o a mi?
__________________
ALOZORRO v5.0 (ahora en .es)
  #6 (permalink)  
Antiguo 19/07/2006, 09:30
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
a ti Azrael666

en cuanto a lo q me dice emiliodeg fijate, lo que hago y lo que quiero hacer: tengo un formulario donde uno de los campos para seleccionar es ese combobox, pero quiero q si el usuiario desea colocar otro contrato lo pueda agregar, pero la funcion principal del formulario no es guardar nuevos contratos sino una informacio genarl q el usuario va a llenar..

es decir, que en el mismo combobox se agregue la nueva opcion y que luego apareca en las proximas consultas.


me explico?..
__________________
.-._.-. [email protected]_.-.
  #7 (permalink)  
Antiguo 19/07/2006, 09:34
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
vamos a ver.. con lo de "contrato" me quieres decir un campo nuevo en una tabla?.. porque es que si no es asi, es normal que no me entiendas, porque sería que te puse una respuesta totalmente diferente jajaja

si es eso (meter un campo nuevo en una tabla) no se que parte no entiendes.. para meter un campo nuevo en una tabla la consulta sql es:

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (c);

dependiendo de que tipo sea o si quieres que sea key o no...
solo habria que pasar los valores que necesita (nombre de la tabla, nombre del nuevo campo, tipo del campo.. etc...)

asi que nose.. ahi lo dejo... yo lo que no entiendo es lo que puso emiliodeg, pero claro, estoy suponiendo que preguntas por meter un campo en una tabla.. jeje...
__________________
ALOZORRO v5.0 (ahora en .es)
  #8 (permalink)  
Antiguo 19/07/2006, 09:36
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
umm no eso no es lo q deseo ya entiendo q me dices tu, ya yo tengo el campo en la base da datos con datos incluidos, lo q hago es en el combobox muestro esos datos con una consulta, pero quiero poder agregar nuevos datos en el mismo campo ..me explico
__________________
.-._.-. [email protected]_.-.
  #9 (permalink)  
Antiguo 19/07/2006, 09:43
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
a.. vale.. tienes el combobox con los datos:
uno
dos
tres
cuatro

y quieres meter el dato "cinco" (vamos.. un "valor"... no un "campo")

puess.. seria lo mismo que te dije antes.. solo que solo necesitarias pedirle el valor, luego al recargar la pagina haces el insert, y al volver a mostrar los datos ya se mostrarian los valores anteriores mas dicho valor (que ya estaría agregado a la base de datos).

a ver si ahora si que lo entendí bien y te vale lo que te comento, (uis.. que verguenza me da no entenderlo jajajaja)
__________________
ALOZORRO v5.0 (ahora en .es)
  #10 (permalink)  
Antiguo 19/07/2006, 09:56
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
HOla!, mirovita, yo tuve alguna vez el mismo, exactamente el mismo problema q tu, lo solucione de la siguiente manera:

a un lado del combo donde tienes tus valores pon un vinculo que diga "agregar" (bueno, eso tu sabras) cuando le das clic se abrira una ventana de un INSERT pidiendo el nuevo valor, y el boton de guardar, guardas el dato en la base, y pones con javascript la instruccion de que al enviar el formulario se cierre la ventanita que pidio el nuevo dato y se recarge la pagina inicial que contiene al combo, este se refresca y ya aparece el nuevo valor.

Asi lo hice yo, espero te haya dado una idea mas clara....

Saludos!!!
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #11 (permalink)  
Antiguo 19/07/2006, 09:58
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
um algo asi estaba pensando pato_volador pero queria ver so sepodia hacer directo desd la etiqueta select... pero bueno como q no..
__________________
.-._.-. [email protected]_.-.
  #12 (permalink)  
Antiguo 19/07/2006, 10:11
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
mmmm hacerlo desde la etiqueta select? es decir, que en el mismo combo tengas la opcion de agregar un nuevo elemento???
puedes tener algo asi:

Opcion1
Opcion2
Opcion3
Opcion4
Opcion5
--Agregar nuevo--

Y en el evento clic del combo (o change...) tu sistema evalue, si la opcion seleccionada es --Agregar nuevo--- que abra la ventanita donde agregas el nuevo elemento...

Saludos!
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #13 (permalink)  
Antiguo 19/07/2006, 10:18
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
umm interesante, gracias ati y a todos por su colaboracion, lo voy a intentar.. besos
__________________
.-._.-. [email protected]_.-.
  #14 (permalink)  
Antiguo 19/07/2006, 10:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por pato_volador
HOla!, mirovita, yo tuve alguna vez el mismo, exactamente el mismo problema q tu, lo solucione de la siguiente manera:

a un lado del combo donde tienes tus valores pon un vinculo que diga "agregar" (bueno, eso tu sabras) cuando le das clic se abrira una ventana de un INSERT pidiendo el nuevo valor, y el boton de guardar, guardas el dato en la base, y pones con javascript la instruccion de que al enviar el formulario se cierre la ventanita que pidio el nuevo dato y se recarge la pagina inicial que contiene al combo, este se refresca y ya aparece el nuevo valor.

Asi lo hice yo, espero te haya dado una idea mas clara....

Saludos!!!
Así sería el proceso natural con PHP .. por otro lado inserta ese nuevo registro en la tabla de tu BBDD implicada.

Podrías usar javascript o "Ajax" incluso para hacer eso en forma más dinámica .. sin recargas de página o incluso "jugar" con mucho javascript para ir añadiendo nuevos items a ese "combo" .. (Y con "Ajax" hacerlo llegar al servidor para que queden en tu BBDD, o lo envias todo (lo que que tenía y lo nuevo) al tu script de proceso/almacenamiento en tus BBDD al enviarlo).

Me parece que es algo como esto lo que necesitas?:
http://www.blueshoes.org/en/javascript/dropdown/


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 17:44.