Foros del Web » Programando para Internet » PHP »

Error en guardar datos en Mysql

Estas en el tema de Error en guardar datos en Mysql en el foro de PHP en Foros del Web. Hola a todos, buenas noches... Hace poco hice un administrador para subir información a una página de internet. El administrador funcionaba perfectamente, sin embargo, hay ...
  #1 (permalink)  
Antiguo 14/11/2012, 17:54
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Error en guardar datos en Mysql

Hola a todos, buenas noches...

Hace poco hice un administrador para subir información a una página de internet. El administrador funcionaba perfectamente, sin embargo, hay dos módulos de los cuales desconozco la razón por la cuál dejaron de funcionar.

Desde una página echa en PHP, envío la información por un formulario, la cuál veo que sale bien haciendo la prueba de var_dump();

Para que sea más claro les explico:

El formulario es el siguiente:

Código HTML:
<div id="wid-noticias">
	<p><strong>Noticias</strong></p>     
            <form action="interface.php" method="post">
		<textarea name="noticia" id="noticia" class="input-a" rows="10" placeholder="Descripción de la nota"><?php echo $noticia; ?></textarea>
                    <input type="text" name="autorNot" id="autorNot" class="input-a" value="<?php echo $autorNot; ?>" placeholder="Autor" />                    
                    <input type="date" name="fecha" id="fecha" value="<?php echo $fecha; ?>"  /> 
                    <input type="text" name="fuente" id="fuente" class="input-a" value="<?php echo $fuente; ?>" placeholder="Fuente"  />
                    <p>Panel de Modificaciones</p>
                    <input type="submit" name="guardarNoticia" id="guardarNoticia" value="Guardar" />
                    <input type="submit" name="editarNoticia" id="editarNoticia" value="Editar" />
                    <input type="submit" name="borrarNoticia" id="borrarNoticia" value="Borrar" />
                    <p>Panel de Búsqueda</p>
                    <input type="submit" name="buscarNoticia" id="buscarNoticia" value="Buscar" />                                                            
                    <input type="hidden" name="hiddenNot" id="hiddenNot" value="<?php echo $idNota; ?>" />
					<select name="noticiaSel">
                    	<option value="0">-- Selecciona Noticia --</option>
                        <?php while($rowShowNoticias = mysql_fetch_array($sqlShowNoticias)) { ?>
                        <option value="<?php echo $rowShowNoticias['id_noticias']; ?>"><?php echo $rowShowNoticias['noticias_fecha']; ?></option>
                        <?php } ?>
                    </select>  
                    <p class="mensaje-accion"><?php echo $mensaje3; ?></p>                                                        
                </form>            
            </div> 
El código de PHP para recibir y enviar la información a la base de datos es el siguiente:

Código PHP:
    /* Sección para dar Altas, Modificaciones, Bajas y Búsqueda de Noticias [Sección Inicio] */    
    
        /* Altas */
        
if(isset($_POST['guardarNoticia'])) {
                
            
$sqlInsertNoticias mysql_query("Insert into noticias (noticias_nota, noticias_autor, noticias_fecha, noticias_fuente) Values ('$_POST[noticia]','$_POST[autorNot]','$_POST[fecha]','$_POST[fuente]')");
                
            
$mensaje3 'Noticia dada de alta.';
                
        }
        
        
/* Modificaciones */
        
if(isset($_POST['editarNoticia'])) {
            
            
$sqlUpdateNoticia01 mysql_query("Update noticias Set noticias_nota = '$_POST[noticia]' Where id_noticias = $_POST[hiddenNot]");
            
$sqlUpdateNoticia02 mysql_query("Update noticias Set noticias_autor = '$_POST[autorNot]' Where id_noticias = $_POST[hiddenNot]");
            
$sqlUpdateNoticia03 mysql_query("Update noticias Set noticias_fuente = '$_POST[fuente]' Where id_noticias = $_POST[hiddenNot]");            
            
$sqlUpdateNoticia04 mysql_query("Update noticias Set noticias_fecha = '$_POST[fecha]' Where id_noticias = $_POST[hiddenNot]");                        
            
            
$mensaje3 'Noticia actualizada.';
        }
        
        
        
/* Bajas */
        
        
if(isset($_POST['borrarNoticia'])) {
            
            
$sqlDeleteNoticia mysql_query("Delete from noticias Where id_noticias = $_POST[hiddenNot]");
            
            
$mensaje3 'Noticia eliminada.';
            
        }
        
        
/* Búsqueda */
        
        
if(isset($_POST['buscarNoticia'])) {
            
            
$sqlSelectNoticias mysql_query("Select * from noticias Where id_noticias = $_POST[noticiaSel]");
            
$rowSelectNoticias mysql_fetch_array($sqlSelectNoticias);
    
            
$idNota $rowSelectNoticias['id_noticias'];        
            
$noticia $rowSelectNoticias['noticias_nota'];
            
$autorNot $rowSelectNoticias['noticias_autor'];            
            
$fuente $rowSelectNoticias['noticias_fuente'];
            
$fecha $rowSelectNoticias['noticias_fecha'];            
            
            
$mensaje3 'Noticia encontrado.';
            
        } 
Ya revisé las tablas en la base de datos, las cuáles son correctas a los nombres que menciono en el código, sin embargo no puedo insertar una noticia.

Tengo muchos módulos más realizados de la misma forma, sin embargo esos funcionan a la perfección, simplemente este y otro módulo dejaron de funcionar y desconozco el porqué.

Cuando uso el var_dump($_POST); obtengo lo siguiente:

Código:
array(7) { ["noticia"]=> string(301) "
Entérate de lo más nuevo que JPE Consultores está realizando. Podrás partcipar en webinar's totalmente gratuitos y otras grandes promociones.

" ["autorNot"]=> string(9) "Sin autor" ["fecha"]=> string(10) "2012-11-14" ["fuente"]=> string(10) "Sin fuente" ["guardarNoticia"]=> string(7) "Guardar" ["hiddenNot"]=> string(0) "" ["noticiaSel"]=> string(1) "0" }
Llevo un buen rato haciendo pruebas y no encuentro la solución... alguien tiene alguna idea de donde estoy cometiendo el error? :/

De antemano, les agradezco por sus comentarios.

Saludos!!
  #2 (permalink)  
Antiguo 14/11/2012, 18:59
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 13 años, 5 meses
Puntos: 17
Respuesta: Error en guardar datos en Mysql

Pues a simple vista parece estar todo bien, de hecho lo e probado yo en localhost con ese formulario y ese código php y e imprimido la consulta $sqlInsertNoticias, para insertarla manualmente en el phpmyadmin y me la a insertado bien ( he creado las mismas tablas y demás ), revisa que no te falte añadir algun registro mas en "(noticias_nota, noticias_autor, noticias_fecha, noticias_fuente)" por que a mi me lo a insertado todo bien, revisa que no te falte el típico ID o algún campo.

Saludos!
__________________
Twitter: @ed33x
  #3 (permalink)  
Antiguo 14/11/2012, 21:46
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

Lo curioso, es que hice el administrador para subir la información a la página y todo funcionó correctamente.

En el momento que empecé a hacer pruebas ya en la página, vi que no subía las noticias, comencé a revisar pero no encontré nada anormal y a esta hora mi cabeza está por estallar ya que no veo el error :/

La tabla está bien, la he revisado como 20 veces rogando porque el error esté ahí pero nada :(

Muchas gracias por tomarte el tiempo de crear todo y probarlo :)
  #4 (permalink)  
Antiguo 15/11/2012, 07:39
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 13 años, 5 meses
Puntos: 17
Respuesta: Error en guardar datos en Mysql

Haz una cosa imprime la consulta haber que resultados te da.

Código:
echo "Insert into noticias (noticias_nota, noticias_autor, noticias_fecha, noticias_fuente) Values ('$_POST[noticia]','$_POST[autorNot]','$_POST[fecha]','$_POST[fuente]')";
dentro del if guardar, luego copiala y insertala manualmente haber si te da algun error.

PD: Te e enviado un mp.

Saludos y no ahi de que.
__________________
Twitter: @ed33x
  #5 (permalink)  
Antiguo 15/11/2012, 09:33
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

Hola!

Mira, hice lo que me comentaste y me sale esto:

Cita:
Insert into noticias (noticias_nota, noticias_autor, noticias_fecha, noticias_fuente) Values ('Entérate de lo más nuevo que JPE Consultores está realizando. Podrás partcipar en webinar's totalmente gratuitos y otras grandes promociones.','','2012-11-15','')
A lo cuál me parece correcto... las dudas siguen creciendo :/
  #6 (permalink)  
Antiguo 15/11/2012, 09:56
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

Gracias a la ayuda de LiveTechno y a sus últimas pruebas que me pidió que realizara pude ver que el problema radicaba en la información que estaba ingresando al campo.

Yo ingresaba un texto que decía:

Entérate de lo más nuevo que JPE Consultores está realizando. Podrás partcipar en webinar's totalmente gratuitos y otras grandes promociones.

Sin embargo, la comita simple que está en la palabra "webinar´s", estaba provocando que la nota se cortara en esa parte, y eso hacia que la instrucción no se ejecutara correctamente.

Gracias por la ayuda! ^^
  #7 (permalink)  
Antiguo 15/11/2012, 16:38
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

Bueno, en el otro módulo que comenté, creí que sería el mismo procedimiento para solucionarlo... sin embargo es algo distinto, aunque el error es el mismo :/

El formulario es el siguiente:

Código HTML:
<div id="widget-modelo">
    	<div id="wid-modelo">
           	    <p><strong>Modelo simplificado</strong></p>
        	    <form action="modelo.php" method="post" enctype="multipart/form-data">
                    <input type="text" name="modelo" id="modelo" class="input-a" value="<?php echo $modelo; ?>" placeholder="Título del modelo" />
                    <input type="text" name="imageName" id="imageName" class="input-a" value="<?php echo $imagen; ?>" placeholder="Nombre de la imagen (sin comitas, acentos o extensión del archivo)" />                    
					<textarea name="descripcion" class="input-a" placeholder="Definición del modelo"><?php echo $descripcion; ?></textarea>
                    <img src="../img/<?php echo $imagen; ?>" alt="" class="adaptive-img"/>
                    <input type="file" name="imagMod" id="imagMod" class="input-a" />
                    <p>Panel de Modificaciones</p>
                    <input type="submit" name="guardarMode" id="guardarMode" value="Guardar" />
                    <input type="submit" name="editarMode" id="editarMode" value="Editar" />
                    <input type="submit" name="borrarMode" id="borrarMode" value="Borrar" />
                    <p>Panel de Búsqueda</p>
                    <input type="submit" name="buscarMode" id="buscarMode" value="Buscar" />                                                            
                    <input type="hidden" name="hiddenMod" id="hiddenMod" value="<?php echo $idModelo; ?>" />
					<select name="modelosSel">
                    	<option value="0">-- Selecciona modelo --</option>
                        <?php while($rowShowModelos = mysql_fetch_array($sqlShowModelos)) { ?>
                      	<option value="<?php echo $rowShowModelos['id_modelo']; ?>"><?php echo $rowShowModelos['mod_titulo']; ?></option>
                        <?php } ?>
                    </select> 
                    <p class="mensaje-accion"><?php echo $mensaje; ?></p>                                                         
                </form>
         </div>
</div> 
y el PHP donde hago los querys es este:

Código PHP:
/* Sección para dar Altas, Modificaciones, Bajas y Búsqueda de Modelos [Sección Modelos] */    
    
        /* Altas */
        
if(isset($_POST['guardarMode'])) {
            
            if(
$_FILES['imagMod']['name'] != null){    
                
$directorio '../img' ;
                if(
move_uploaded_file $_FILES ['imagMod']['tmp_name'], $directorio.'/'.$_POST['imageName'].'.jpg')) {    }
            }
            
            
$imagenModelo $_POST['imageName'] . '.jpg';        
            
            
$sqlInsertarModelos mysql_query("Insert into modelo (mod_titulo, mod_descripcion, mod_imagen) Values ('$_POST[modelo]', '$_POST[descripcion]', '$imagenModelo')");
            
            
$mensaje 'Nuevo modelo añadido a la base de datos.';            
            
        }
        
        
/* Modificaciones */
        
if(isset($_POST['editarMode'])) {
            
            if(
$_FILES['imagMod']['name'] != null){    
                
$directorio '../img' ;
                if(
move_uploaded_file $_FILES ['imagMod']['tmp_name'], $directorio.'/'.$_POST['imageName'].'.jpg')) {    }
            }
            
            
$imagenModelo $_POST['imageName'] . '.jpg';        
            
            
$sqlUpdateModelo01 mysql_query("Update modelo Set mod_titulo = '$_POST[modelo]' Where id_modelo = $_POST[hiddenMod]");
            
$sqlUpdateModelo02 mysql_query("Update modelo Set mod_descripcion = '$_POST[descripcion]' Where id_modelo = $_POST[hiddenMod]");
            
$sqlUpdateModelo03 mysql_query("Update modelo Set mod_imagen = '$imagenModelo' Where id_modelo = $_POST[hiddenMod]");            
            
            
$mensaje 'Modelos actualizados.';
        }
        
        
        
/* Bajas */
        
        
if(isset($_POST['borrarMode'])) {
            
            
$sqlDeleteModelo mysql_query("Delete from modelo Where id_modelo = $_POST[hiddenMod]");
            
            
$mensaje 'Modelo eliminado.';
            
        }
        
        
/* Búsqueda */
        
        
if(isset($_POST['buscarMode'])) {
            
            
$sqlSelectModelo mysql_query("Select * from modelo Where id_modelo = $_POST[modelosSel]");
            
$rowSelectModelo mysql_fetch_array($sqlSelectModelo);
    
            
$idModelo $rowSelectModelo['id_modelo'];        
            
$modelo $rowSelectModelo['mod_titulo'];
            
$descripcion $rowSelectModelo['mod_descripcion'];                        
            
$imagen $rowSelectModelo['mod_imagen'];            
            
            
$mensaje 'Información localizada.';
            
        }        
        
        
/* Listado de Modelos */
        
        
$sqlShowModelos mysql_query("Select * from modelo");
        
    
/* Fin Sección Noticias */ 
Cuando ejecuto el var_dump($_POST); sale lo siguiente:

Código:
array(6) { ["modelo"]=> string(9) "OPCIÓN 1" ["imageName"]=> string(7) "opcion1" ["descripcion"]=> string(13) "
Prueba

" ["guardarMode"]=> string(7) "Guardar" ["hiddenMod"]=> string(0) "" ["modelosSel"]=> string(1) "0" }
y en el "echo", esto:

Código:
Insert into modelo (mod_titulo, mod_descripcion, mod_imagen) Values ('OPCIÓN 1', 'Prueba', 'opcion1.jpg')
Ya inserte esa última instrucción en Mysql, sin embargo la ejecuta exitosamente, así que el problema no radica ahora en el query... tendré gremlins? :/
  #8 (permalink)  
Antiguo 15/11/2012, 17:15
Avatar de arianna_rr  
Fecha de Ingreso: noviembre-2012
Ubicación: Playa Del Carmen, Q. Roo
Mensajes: 40
Antigüedad: 12 años
Puntos: 3
Respuesta: Error en guardar datos en Mysql

Hola, qué te parece si pones "or die(mysql_error())" después de cada query, o sea

$sqlUpdateModelo01 = mysql_query("Update modelo Set mod_titulo = '$_POST[modelo]' Where id_modelo = $_POST[hiddenMod]") or die(mysql_error());

Entonces vuelves a ejecutar el script y si los errores vienen a partir de tu query entonces los verás impresos y si los pones aquí mucho mejor para poder darle seguimiento al problema. Si no, de todas maneras avisa.
__________________
Respaldo, luego existo.
--------------------
Aprender rápido y olvidar lentamente es sólo una capacidad. Si te crees inteligente evita las respuestas pedantes. GRACIAS! ♫
  #9 (permalink)  
Antiguo 15/11/2012, 17:25
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

:o

O.o

funciono! :D

sé cuál es el uso de mysql_error()... pero como funciona después de los querys?

Aún así se me hace muy raro que no funcione correctamente, pero con esa instrucción se corrigió, sólo la puse en el insert, las opciones de update y delete no lo requirieron.
  #10 (permalink)  
Antiguo 15/11/2012, 17:38
Avatar de arianna_rr  
Fecha de Ingreso: noviembre-2012
Ubicación: Playa Del Carmen, Q. Roo
Mensajes: 40
Antigüedad: 12 años
Puntos: 3
Respuesta: Error en guardar datos en Mysql

Esa instrución debió mostrarte el error no corregirlo, o sea, ya todo está bien? o cuál era el problema?
__________________
Respaldo, luego existo.
--------------------
Aprender rápido y olvidar lentamente es sólo una capacidad. Si te crees inteligente evita las respuestas pedantes. GRACIAS! ♫
  #11 (permalink)  
Antiguo 15/11/2012, 17:41
Avatar de Angel_De_la_Cruz  
Fecha de Ingreso: noviembre-2012
Ubicación: Paraiso, Tabasco, Mexico, Mexico
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Error en guardar datos en Mysql

si tienes algún error en alguna linea de codigos de mysql el mysql_error() te dice que tipo de error, por lo regular despues de haber usado mucho tiempo tu equipo y de haberle dado actualizar es recomendable borrar el cache del navegador.
  #12 (permalink)  
Antiguo 15/11/2012, 17:42
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

Así es. Corrigió la instrucción, más no me mostró el error. Estoy dando altas, editándolas y borrándolas y sigue funcionando, pero no me muestra el tipo de error.

Hasta donde puedo ver, antes de meter la instrucción, no veía error alguno, por ello creo que no me muestra alguno, pero el código está funcionando...

No sé como, pero debo llegar al meollo del asunto :/
  #13 (permalink)  
Antiguo 15/11/2012, 18:00
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 13 años, 5 meses
Puntos: 17
Respuesta: Error en guardar datos en Mysql

¿Lo has solucionado ya el error del nuevo modulo? ¿Que error tienes ahora Middrel y en donde lo tienes?

Saludos!
__________________
Twitter: @ed33x
  #14 (permalink)  
Antiguo 15/11/2012, 21:16
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 6 meses
Puntos: 27
Respuesta: Error en guardar datos en Mysql

Que tal Live, hacia lo mismo que el módulo anterior, sin embargo ahora la instrucción de sql funciona bien, sólo que no envía la información.

Coloqué la instrucción de error de PHP para MySQl que me mencionó arianna y está funcionando, más sin embargo no muestra algún tipo de error.

Si Angel, limpié muchas veces el caché y lo probé en otros navegadores y el error persistía hasta antes de la instrucción de error.

De todas tengo que seguir evaluándolo para saber el porqué de esto. Los mantego al tanto.

Un saludo y gracias por el apoyo!
  #15 (permalink)  
Antiguo 16/11/2012, 18:40
Avatar de arianna_rr  
Fecha de Ingreso: noviembre-2012
Ubicación: Playa Del Carmen, Q. Roo
Mensajes: 40
Antigüedad: 12 años
Puntos: 3
Respuesta: Error en guardar datos en Mysql

A ver, si he entendido bien dices que no te arroja ningún tipo de error, entonces tu problema es que los datos no se están guardando en la base de datos?

Si es así, que tal si verificas la estructura de tu tabla? por ejemplo, verificar que

Código MySQL:
Ver original
  1. Insert into modelo (mod_titulo, mod_descripcion, mod_imagen) Values ('OPCIÓN 1', 'Prueba', 'opcion1.jpg')

la tabla modelo no tenga más campos que sean obligatorios(no nulos), que los campos mod_titulo, mod_descripcion y mod_imagen sean del tipo varchar o que soporten ese tipo de datos alfanuméricos y la longitud.

A manera personal, ese fue el inconveniente que tuve algunas veces, todo parecía bien pero algunos datos o registros completos no se guardaban, y era porque había inconsistencia entre la estructura de mis tablas locales con las que estaban en el servidor.
__________________
Respaldo, luego existo.
--------------------
Aprender rápido y olvidar lentamente es sólo una capacidad. Si te crees inteligente evita las respuestas pedantes. GRACIAS! ♫

Etiquetas: formulario, mysql, sql, tabla
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 14:11.