Foros del Web » Programando para Internet » PHP »

Si el campo viene vacio, me inserta otro dato

Estas en el tema de Si el campo viene vacio, me inserta otro dato en el foro de PHP en Foros del Web. Ok tengo mucho tiempo queriendo resolver este problema.. ojala y en esta ocasion logre resolverlo.. Tengo un formulario de insercion llamado form.php y tengo el ...
  #1 (permalink)  
Antiguo 28/08/2008, 19:42
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Si el campo viene vacio, me inserta otro dato

Ok tengo mucho tiempo queriendo resolver este problema.. ojala y en esta ocasion logre resolverlo..

Tengo un formulario de insercion llamado form.php
y tengo el script php que recoje valores de form.php y se llama funcion.php

en el form uno de mis campo es...
Código HTML:
<input name="fichero" type="file" size="50" maxlength="150" /> 
es para subir un archivo, claro esta....

lo que quiero es que el script si detecta que el campo viene con dato (osea archivo) me suba el nombre del archivo a mi base de datos.. hasta ahi si lo se bien...
pero, si viene blanco quiero que me inserte automaticamente el valor spacer.gif

como puedo hacer esto??

por cierto para subir el archivo utilizo esto dentro de mi script

Código PHP:
if (isset($_POST['submit'])) {   
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { 
         
            
$ruta_destino "galeria/"
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { 
y para subir el nombre del archivo a la base de datos lo hago asi...

Código PHP:
$ruta $_FILES['fichero']['name'];
if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO noticias (id, categoria, titulo, imagen, ruta, resumen, contenido, escritor, `date`) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['id'], "int"),
                       
GetSQLValueString($_POST['categoria'], "text"),
                       
GetSQLValueString($_POST['titulo'], "text"),
                       
GetSQLValueString($_POST['imagen'], "text"),
                       
GetSQLValueString($ruta"text"),
                       
GetSQLValueString($_POST['resumen'], "text"),
                       
GetSQLValueString($_POST['contenido'], "text"),
                       
GetSQLValueString($_POST['escritor'], "text"),
                       
GetSQLValueString($_POST['date'], "date")); 
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 28/08/2008, 19:48
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 193
Antigüedad: 19 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Si el campo viene vacio, me inserta otro dato

Código PHP:
$insertSQL ="INSERT INTO noticias (id, categoria, titulo, imagen, ruta, resumen, contenido, escritor, `date`) ;


if(empty($_FILES['fichero']['tmp_name'])){
    $insertSQL.=" 
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)";
}else{
    $insertSQL.=" 
VALUES (%s, %s, %s'spacer.gif', %s, %s, %s, %s, %s)";

__________________
www.webeconomicas.cl
  #3 (permalink)  
Antiguo 28/08/2008, 19:50
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Respuesta: Si el campo viene vacio, me inserta otro dato

Hola Capimaster. Proba si te srive esto:

$ruta = empty($_FILES['fichero']['name']) ? "spacer.gif" : $_FILES['fichero']['name'];

Reemplazo en donde dice: $ruta = $_FILES['fichero']['name'];
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #4 (permalink)  
Antiguo 28/08/2008, 20:41
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Si el campo viene vacio, me inserta otro dato

Cita:
Iniciado por hgp147 Ver Mensaje
Hola Capimaster. Proba si te srive esto:

$ruta = empty($_FILES['fichero']['name']) ? "spacer.gif" : $_FILES['fichero']['name'];

Reemplazo en donde dice: $ruta = $_FILES['fichero']['name'];
Primero que nada muchas gracias a los 2 por su pronta respuesta...

Pero sinceramente en todos los intentos que hize por arreglar este problema nunca me habian dado una solucion tan facil como la que me acaba de dar hgp147... y lo mejor de todo si me funciono....
muchas gracias...
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #5 (permalink)  
Antiguo 28/08/2008, 20:55
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Si el campo viene vacio, me inserta otro dato

duda...
$ruta = empty($_FILES['fichero']['name']) ? "spacer.gif" : $_FILES['fichero']['name'];

si en vez de solo enviarme $_FILES['fichero']['name'] quiero que me inserte...

redimensionar.php?imagen=".$_FILES['fichero']['name'];

tengo que hacer esto?
$ruta = empty(redimensionar.php?imagen=".$_FILES['fichero']['name']) ? "spacer.gif" : $_FILES['fichero']['name'];

o esto...

$ruta = empty($_FILES['fichero']['name']) ? "spacer.gif" : "redimensionar.php?imagen=".$_FILES['fichero']['name'];
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #6 (permalink)  
Antiguo 28/08/2008, 21:28
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Si el campo viene vacio, me inserta otro dato

Otra opción muchísimo menos elaborada, pero qu eigual sirve, es que pongas tu campo en la BD como NOT NULL y con un valor por defecto spacer.gif

Como te digo, mucho menos elaborada, mucho menos profesional, pero es una opción
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #7 (permalink)  
Antiguo 29/08/2008, 03:26
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Pregunta Respuesta: Si el campo viene vacio, me inserta otro dato

Capimaster, la mejor opcion es la de donfrancisco.

Código PHP:
if ($_FILES['fichero']['name']=="" || $_FILES['fichero']['name']==null){
  
//inserta el registro pero con el nombre de la imagen que tu escojas
}else{
  
//inserta el registro con el nombre real del aimagen

  #8 (permalink)  
Antiguo 29/08/2008, 04:43
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Si el campo viene vacio, me inserta otro dato

Cita:
Iniciado por Capimaster Ver Mensaje
duda...
$ruta = empty($_FILES['fichero']['name']) ? "spacer.gif" : $_FILES['fichero']['name'];

si en vez de solo enviarme $_FILES['fichero']['name'] quiero que me inserte...

redimensionar.php?imagen=".$_FILES['fichero']['name'];

tengo que hacer esto?
$ruta = empty(redimensionar.php?imagen=".$_FILES['fichero']['name']) ? "spacer.gif" : $_FILES['fichero']['name'];

o esto...

$ruta = empty($_FILES['fichero']['name']) ? "spacer.gif" : "redimensionar.php?imagen=".$_FILES['fichero']['name'];
la segunda opcion seria la correcta
debes tener en cuenta que esto:
Código PHP:
$variable = (condicion) ? 'se cumple' 'no se cumple'
es un if simplificado, si se cumple la condicion dentro del parentesis, la variable cogera el primer valor, si no se cumple, soge el segundo
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 15:41.