Foros del Web » Programando para Internet » PHP »

solo cambiar los datos de mysql que haigan llenado en el formulario??

Estas en el tema de solo cambiar los datos de mysql que haigan llenado en el formulario?? en el foro de PHP en Foros del Web. lo que pasa es que tengo 4 text fields en un formulario, y pos no mas kiero que cambien en mysql los text fields que ...
  #1 (permalink)  
Antiguo 02/11/2008, 17:52
 
Fecha de Ingreso: enero-2008
Mensajes: 214
Antigüedad: 16 años, 2 meses
Puntos: 3
solo cambiar los datos de mysql que haigan llenado en el formulario??

lo que pasa es que tengo 4 text fields en un formulario, y pos no mas kiero que cambien en mysql los text fields que llenen y los demas los deje intactos, por que como lo tengo los text fields que tenga en blanco, me los pone igual en mysql. trate de usar el if pero no me funciono, lo puse asi

Código PHP:
if ($text == "")
exit; 
else 
//aqui ya ponia para que lo enviara a mysql 
y asi lo puse cuatro veces mas pero no me funciono. asi que alguien sabe como hacer para que no mas se kambien los datos que llenaron???

espero que alguien me ayude por que no kiero poner un buton por cada "text field (campo)".desde ya gracias
  #2 (permalink)  
Antiguo 02/11/2008, 19:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

Bueno como alguno saben soy bastante novato en esto de mysql de hecho hasta hace unos dias me han ayudado a saltear problemas bastante basicos en esto del PHP.

Asi que tratare de hacer mi primer ayuda en este foro.

Primero y principal y disculpa que te lo diga pero creo qeu tienes un problema con la gramatica, no se dice haigan "por diossss" es haya jeje y si te refieres a encontrar es hallar... bueno aclarado esto procedo a intentar ayudarte...

Para comenzar, yo presupongo que algunos campos siempre deben llenarse... no se que campos tienes pero creo qeu uno o 2 de ellos siempre deberan llenarse sino algunos campos de tu formulario estan mal o has planificado mal la base de datos tener muchos null afecta al tamaño de manera innecesaria... debes tener los nulls justos y necesarios.

Bien presuponiendo esto... yo haria lo siguiente... generaria un if para cada caso... es decir... Suponiendo que el campo 1 y 2 siempre deben llenarse... generaria un if que detecte si el campo 3 esta lleno y el 4 tambien si todos estan llenos hacer un query para ese caso...

Otro if por si el 3 esta lleno y el 4 no, con su query respectivo

otro if para el caso de si 4 esta lleno y 3 no, con su query tambien...

y por ultimo uno por si 3 y 4 estan vacios..

y listo ya tienes una solucion..

Seguramente alguien con mas idea de la programacion (como dije yo todavia estoy estudiando php) tal vez tenga una mejor solucion. si no quieres hacerlo con if tal vez puedas hacerlo con un switch.

Saludos.
  #3 (permalink)  
Antiguo 02/11/2008, 20:04
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

Si el hecho de hacer las cuatro consultas de actualización no es crítico, lo más cómodo es recoger el valor de los cuatro campos de texto del formulario en un array, recorrerlos con un foreach y al evaluar cada uno, si no está vacío actualizar con UPDATE como convenga. Si quieres hacerlo con una única consulta, usa el foreach para construir el string de la consulta apropiadamente ... y al terminar la llamas, sin más.

Un saludo.
  #4 (permalink)  
Antiguo 03/11/2008, 00:14
 
Fecha de Ingreso: enero-2008
Mensajes: 214
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

aver (matiD) primera, este es un foro para webmasters y otras cosas relacionadas con webs, te agradezco que me corrigas pero este foro, asta donde yo se no es de gramatica o algo por el estilo. Ten encuenta que no todos los que estamos en este foro nuestro primer idioma es el espanol, y que aveces no mas tratamos de darnos a entender lo suficiente para que nos ayuden. Asi que mejor trata de guardarte tu sabiduria para otra ocasion.

Fijate que para corregir casi tienes que ser tu perfecto, almenos en la area en la que estas corrigiendo y pos tu ni siquiera sabes leer. Yo pregunte por una funcion y tu ya me estas cambiando la estructura de mi pagina y todavia "presuponiendo" que si no es como tu dices esta mal. dime que esto que no entendi nada
Cita:
Para comenzar, yo presupongo que algunos campos siempre deben llenarse... no se que campos tienes pero creo qeu uno o 2 de ellos siempre deberan llenarse sino algunos campos de tu formulario estan mal o has planificado mal la base de datos tener muchos null afecta al tamaño de manera innecesaria... debes tener los nulls justos y necesarios.
como que campos tengo?? asta donde yo se hay como tres tipos de campos dieferentes, pero todos con la misma funcion, no tiene por que haber problema en cuales uso, asi que de que estas hablando??? Ahora no mas por que tu crees que segun tu asi debe de ser, ahora tengo que poner dos campos obligatorios??? no mas por que tu dices que asi debe de ser, jejej hayy chavo/a, y por ultimo maestro de la gramatica no sabes escribir, en todo ese pedazo de letras que escribiste necesita puntos y comas para separar y aclarar ideas, por que no se te entiende nada "..." esto no ayuda mucho. Tienes muchas ideas pero ni una la aclaras, y de lo otro ni hablar, pesimo deveras disculpa que te lo diga pero nose entiende nada.

ahh se me olvidaba lo del if, que estoy diciendo arriba?? "por diossss"
  #5 (permalink)  
Antiguo 03/11/2008, 00:21
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

tu codigo debe quedar algo asi, solo refinalo:

if($campo1!="")$sql.="campo1=$campo1,";
if($campo2!="")$sql.="campo2=$campo2,";
if($campo3!="")$sql.="campo3=$campo3,";
if($campo4!="")$sql.="campo4=$campo4,";
if($sql!="")$query="update tabla set ".substr($sql,0,strlen($sql))." where condicion";


suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 03/11/2008, 21:51
 
Fecha de Ingreso: enero-2008
Mensajes: 214
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

gracias por tu respuesta, oye pero ya lo probe y no me sirve, no se que estoy haciendo mal?? mira asi es como lo estoy acomodando

Código PHP:
$patrocinador $_POST["patrocinador"];
$idiomas $_POST["idiomas"];
$integrantes $_POST["integrantes"];
$musica $_POST["musica"];
$usuario $_POST["usuario"];

if(
$patrocinador!="")$sql.="patrocinador=$patrocinador,";
if(
$idiomas!="")$sql.="idiomas=$idiomas,";
if(
$integrantes!="")$sql.="integrantes=$integrantes,";
if(
$musica!="")$sql.="musica=$musica,";
mysql_select_db('son') or die('Error, cannot select mysql database');
if(
$sql!="")$query="update infoadicional set ".substr($sql,0,strlen($sql))." where usuario = '$usuario'";
mysql_query($query) or die('Error, query failed'); 
ya lo puse con mayusculas y todo y sigue sin servir, el codigo esta muy bien se me hace cuerente a lo que yo kiero hacer pero no se que estoy haciendo mal. ese es el unico codigo que tengo mas la connecion ala base de datos pero eso es lo uniko que corro
  #7 (permalink)  
Antiguo 04/11/2008, 03:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

Te lanza un error? Prueba poniendo así:

Código php:
Ver original
  1. $patrocinador = "'" . mysql_real_escape_string($_POST["patrocinador"]) . "'";
Igual para las demás variables

Saludos,
  #8 (permalink)  
Antiguo 04/11/2008, 08:48
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

te faltan ponerles comillas, simpre que no sepas los errores, hazle un echo a la variable que contiene el selec ($sql) para que veas que trae y mas aun mejor si la ejecutes en el PHPMyAdmin.

Código PHP:
$patrocinador $_POST["patrocinador"];
$idiomas $_POST["idiomas"];
$integrantes $_POST["integrantes"];
$musica $_POST["musica"];
$usuario $_POST["usuario"];

if(
$patrocinador!="")$sql.="patrocinador='$patrocinador',";
if(
$idiomas!="")$sql.="idiomas='$idiomas',";
if(
$integrantes!="")$sql.="integrantes='$integrantes',";
if(
$musica!="")$sql.="musica='$musica',";
mysql_select_db('son') or die('Error, cannot select mysql database');
if(
$sql!="")$query="update infoadicional set ".substr($sql,0,strlen($sql))." where usuario = '$usuario'";
mysql_query($query) or die('Error, query failed'); 
Dios te Bendiga.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 04/11/2008, 15:43
 
Fecha de Ingreso: enero-2008
Mensajes: 214
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

ya probe y esta es la funcion que no me sirve
Código PHP:
".substr($sql,0,strlen($sql))." 
cada vez que pongo eso me imprime el "Error, query failed" que es lo que tengo cuando no se graban las cosas en mysql.

cuando los pongo asi

Código PHP:
if($patrocinador!="")$sql.="patrocinador='$patrocinador',";
if(
$idiomas!="")$sql.="idiomas='$idiomas',";
if(
$integrantes!="")$sql.="integrantes='$integrantes',";
if(
$musica!="")$sql.="musica='$musica',";
mysql_select_db('son') or die('Error, cannot select mysql database');
if(
$sql!="")$query="UPDATE infoadicional SET patrocinador='$patrocinador', idiomas='$idiomas', integrantes='$integrantes', musica='$musica' WHERE usuario = 'Admin'";
mysql_query($query) or die('Error, query failed'); 
si graba las cosas, pero todas, no no mas de los campos que tienen llenos. No hay otro codigo que pueda usar en vez de este?? ya que ami no me sirve
Código PHP:
".substr($sql,0,strlen($sql))." 
asi es como lo estoy probando que no me sirve

Código PHP:
$patrocinador $_POST["patrocinador"];
$idiomas $_POST["idiomas"];
$integrantes $_POST["integrantes"];
$musica $_POST["musica"];
$usuario $_POST["usuario"];

if(
$patrocinador!="")$sql.="patrocinador='$patrocinador',";
if(
$idiomas!="")$sql.="idiomas='$idiomas',";
if(
$integrantes!="")$sql.="integrantes='$integrantes',";
if(
$musica!="")$sql.="musica='$musica',";
mysql_select_db('son') or die('Error, cannot select mysql database');
if(
$sql!="")$query="UPDATE infoadicional SET ".substr($sql,0,strlen($sql))." WHERE usuario = 'Admin'";
mysql_query($query) or die('Error, query failed'); 
  #10 (permalink)  
Antiguo 05/11/2008, 08:32
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

a sory, es que debe ser:
substr($sql,0,strlen($sql)-1)

ese codigo lo puse por que estas concatenando los valores que tienen datos, pero al final siempre hay una coma, es por eso el error y con eso le quito la ultima coma a la cadena.

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #11 (permalink)  
Antiguo 05/11/2008, 14:13
 
Fecha de Ingreso: enero-2008
Mensajes: 214
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: solo cambiar los datos de mysql que haigan llenado en el formulario??

yyyyy gracias masterojitos si era eso thanks man
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 09:21.