Buenos días,
Estoy siguiendo el curso de PhP y Mysql.
El caso es que he creado el archivo ejemplo de formulario, lo ejecuto, no me da ningun error pero no introduce los datos en la tabla de la base de datos que tengo creada. El codigo es el siguiente:
<?php
// leer datos de usuario y contraseña de la base de datos
include("config.php") ;
// Conexión con el servidor
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
// Selección de Base de Datos
mysql_select_db($database) or die ("error2".mysql_error());
mysql_query("INSERT INTO USUARIOS('NOMBRE','EMAIL','URL','ESTADO') VALUES('$_POST','$_POST[correo eliminado]','$_POST','$_POST') ");
echo $_POST," ",$_POST[correo eliminado];
?>
¿Que será?. Antes de escribir la verdad que le he dado muchas muchas vueltas.
Gracias.
Hola:
¿Cómo, o de que forma, te aseguras de que no se guardaron los datos? Supongo que revisaste la base de datos, ¿no? Si no lo has hecho aún, hazlo, pues el que no muestre ningún error no necesariamente significa que no se insertaron. De hecho, en tu caso, en ninguna parte (después de guardar los datos con mysql_query) muestras los errores ni tampoco si se insertaron los datos o no, así que no tendrás cómo saberlo.
Añade esto para verificar los errores (después de mysql_query):
if( mysql_affected_rows() >= 1 )
echo "Datos guardados<br />";
else
echo "No se pudieron guardar los datos. " . mysql_error() . ". " . mysql_errno();
Así podrás saber si ocurrió un error o si se guardaron correctamente.
Saludos.
Gracias skaparate,
Ahora se que me da un sytax error, en concreto el siguiente:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NOMBRE','EMAIL','URL','ESTADO') VALUES('Jokin','tuemail@correcto','
http://www.t' at line 1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NOMBRE','EMAIL','URL','ESTADO') VALUES('Jokin','tuemail@correcto','
http://www.t' at line 1
Donde puedo chequear las sintaxis de mi versión de mysql?
Buenas otra vez,
Mejor dicho, no había copiado bien tu aportación, el error y su línea son los siguientes:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NOMBRE','EMAIL','URL','ESTADO') VALUES('Jokin','tuemail@correcto','
http://www.t' at line 1. 1064
En cualquier caso, ambos son el mismo error :P. Lo extraño es que parece "cortarse" la consulta SQL :S y la única forma de que ocurriera sería que la URL tuviera caracteres extraños como las comillas dobles ("). Intenta lo siguiente:
<?php
$nombre = utf8_encode( $_POST['NOMBRE'] );
$mail = utf8_encode( $_POST['EMAIL'] );
$url = utf8_encode( $_POST['URL'] );
$estado = utf8_encode( $_POST['ESTADO'] );
// leer datos de usuario y contraseña de la base de datos
include("config.php") ;
// Conexión con el servidor
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
// Selección de Base de Datos
mysql_select_db($database) or die ("error2".mysql_error());
mysql_query("INSERT INTO USUARIOS('NOMBRE','EMAIL','URL','ESTADO') VALUES('$nombre', '$email', '$url', '$estado')");
if( mysql_affected_rows() >= 1 )
echo "Datos guardados<br />";
else
echo "No se pudieron guardar los datos. " . mysql_error() . ". " . mysql_errno();
//echo $_POST[NOMBRE]," ",$_POST[EMAIL]; // Esta línea no es necesaria.
?>
hola mira yo tambien tengo problemas en este asunto e estado tratando de conectar el formulario pero al dar enviar datos me marca este error y la verdad no se ni que onda
e intentado de mil maneras pero sigue marcando lo mismo
cres que me puedas ayudar?
error1Access denied for user 'mce502x1'@'localhost' (using password: NO)
Access denied for user 'mce502x1'@'localhost' (using password: NO)
Ese error significa que no estas utilizando la contraseña. En el fondo, estas ejecutando mysql_connect( 'host', 'usuario', '' ); y por ende no te puedes conectar con el servidor (esta esperando una contraseña). Si utilizas el archivo config.php (al igual que
jkn), entonces asegúrate de que el archivo este incluido en el archivo que procesa los datos:
include( 'config.php' );
Saludos.
gracias por el apoyo
mira creo que tengo todo pero no se cual es el problema
<?php
mysql_query ("INSERT INTO `mce502x1_usuarios`.`USUARIOS` (`NOMBRE`, `EMAIL`, `COMENTARIO`, `ESTADO`) VALUES ('$_post', '$_post[correo eliminado]', '$_post', '$_post') ");
$server="mce502.x10.mx";
$database="mce502x1_usuarios";
$db_user="mce502x1_aquileo";
$db_pass="******"; // aqui va la contraseña pero no se cual es problema ya que solo manejo 2 contraseñas y con ninguna de las 2 me conecta.
if( mysql_affected_rows() >= 1 )
echo "Datos guardados<br />";
else
echo "No se pudieron guardar los datos. " . mysql_error() . ". " . mysql_errno();
?>
Hola amigo.
ene ste momento yo tambien estoy estudiando php, por lo que no soy muy bueno aun, pero creo que puedo ayudarte.
intenta:
<?php
include("config.php") ;
$conexion=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error()); //<----Convertir esta funcion en una variable $conexion
mysql_select_db($database,$conexion) or die ("error2".mysql_error()); //<-------Aqui agregamos el $conexion
mysql_query("INSERT INTO USUARIOS('NOMBRE','EMAIL','URL','ESTADO') VALUES('$_POST[NOMBRE]','$_POST[EMAIL]','$_POST[URL]','$_POST[ESTADO]') ");
echo $_POST[NOMBRE]," ",$_POST[EMAIL];
mysql_close($conexion);
?>
Tambien te aconsejo que:
-pongas los codigos php entre las etiquetas PHP "tu codigo aqui" /PHP (encierra los php entre [])
-sube tu codigo a una pagina de tu servidor y pon el link, para ver mejor el problema.
Espero te sirva, suerte. =)
PD: por alguna razon esto no em da el boton de la etiqueta php, ni lña vista previa asi que espero que el mensaje salga bien XD
El problema lo tienes en que tienes que concatenar las variables php para meterlas en la consulta de SQL. Intenta esto:
[COLOR=#000000][COLOR=#0000BB]
$nombre[/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]utf8_encode[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'NOMBRE'[/COLOR][COLOR=#007700]] );
[/COLOR][COLOR=#0000BB]$mail [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]utf8_encode[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'EMAIL'[/COLOR][COLOR=#007700]] );
[/COLOR][COLOR=#0000BB]$url [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]utf8_encode[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'URL'[/COLOR][COLOR=#007700]] );
[/COLOR][COLOR=#0000BB]$estado [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]utf8_encode[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'ESTADO'[/COLOR][COLOR=#007700]] );[/COLOR][/COLOR]
[COLOR=#000000][COLOR=#0000BB]mysql_query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"INSERT INTO USUARIOS(NOMBRE, EMAIL, URL, ESTADO) VALUES('" . $nombre . "','" . $mail . "','" . $url . "','" . $estado . "')"[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
Debería funcionar. El problema está en que debes incluir correctamente las variables PHP en el código de SQL para mandar la consulta.
Un saludo, espero que te sirva.
EL usuario "mce502x1_aquileo" solo puede estar asociado a una contraseña y es esa la que deberías utilizar y te debería de funcionar.
Cuack, gracias por tu aporte. Lo he incorporado y probado y ha seguido igual.
SuperHipo, en cambio tu aporte me ha traido la solución, dejo el codigo que si ha funcionado:
<?php
$nombre = utf8_encode( $_POST['NOMBRE'] );
$mail = utf8_encode( $_POST['EMAIL'] );
$url = utf8_encode( $_POST['URL'] );
$estado = utf8_encode( $_POST['ESTADO'] );
// leer datos de usuario y contraseña de la base de datos
include("config.php") ;
// Conexión con el servidor
$conexion = mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
// Selección de Base de Datos
mysql_select_db($database,$conexion) or die ("error2".mysql_error());
mysql_query("INSERT INTO USUARIOS(NOMBRE,EMAIL,URL,ESTADO) VALUES('$nombre', '$mail', '$url', '$estado')");
if( mysql_affected_rows() >= 1 )
echo "Datos guardados<br />";
else
echo "No se pudieron guardar los datos. " . mysql_error() . ". " . mysql_errno();
echo $_POST," ",$_POST[correo eliminado]; // Esta línea no es necesaria.
?>
Muchas gracias SuperHipo y a todos los que os habeis molestado en ayudar.
Así da gusto. A ver si soy capaz de apernder lo suficiente para poder ayudar yo también.
Me alegro que se te solucionara.
El problema estaba en que, como estás haciendo una consulta SQL dentro de código PHP, debes concatenar (con el punto .) todas las variables propias de php dentro del código y dejar el código SQL como una cadena de texto (entre comillas) que se mandará en la consulta. Mirate esto porque te va a solucionar muchos problemas para insertar SQL en PHP.
Un saludo jkn. Aquí estaremos para solucionar estas cosas :).
Hola, que tal?
Saben me ha pasado algo similar, no puedo insertar datos en la BD, revisé la base de datos y esta vacía, hice la prueba que daban más arriba y tampoco me salio nada, ni siquiera error.
Les dejo parte del código, puesto que es muy largo.
<?php
if(count($_POST)>0){
//Ojo en rutas
include("Conexion.php");
include("envioEmail.php");
$detalle=$_POST['detalle'];
$identificar=$_POST['identificar'];
$agrega_tipo=$_POST['agrega_tipo'];
$agrega_origen=$_POST['agrega_origen'];
$deteccion=$_POST['deteccion'];
$tipo_accion=$_POST['tipo_accion'];
$proceso=$_POST['proceso'];
$fuente=$_POST['fuente'];
$resp_envio=$_POST['resp_envio'];
$cargo=$_POST['cargo'];
//se agrega la descripción del factor
$desc_factor1=$_POST['agrega_factor1'];
$desc_factor2=$_POST['desc_factor2'];
$desc_factor3=$_POST['desc_factor3'];
$desc_factor4=$_POST['desc_factor4'];
$desc_factor5=$_POST['agrega_factor2'];
$desc_factor6=$_POST['desc_factor5'];
$desc_factor7=$_POST['desc_factor6'];
$desc_factor8=$_POST['desc_factor7'];
$desc_factor9=$_POST['agrega_factor3'];
$desc_factor10=$_POST['desc_factor8'];
$desc_factor11=$_POST['desc_factor9'];
$desc_factor12=$_POST['desc_factor10'];
$con=Conectarse();
$sql="insert into no_conforme
( detalle_no_conforme
, identifica_correccion
, otro_tipo_no_conforme
, otro_origen
, deteccion
, id_origen_hallazgo
, id_tipo_accion
, id_proceso_area
, nombre_envio
, cargo_envio)
values
('".$detalle."'
, '".$identificar."'
, '".$agrega_tipo."'
, '".$agrega_origen."'
, '".$deteccion."'
, '".$fuente."'
, '".$tipo_accion."'
, '".$proceso."'
, '".$resp_envio."'
, '".$cargo."')";
//inserta datos
$consulta=mysql_query($sql, $con)or die($sql."no se pudo ejecutar la instruccion".mysql_error($con));
//consulta PK recien insertada de no_conforme
$sql="select max(id_origen) from no_conforme";
$consultaID=mysql_query($sql, $con);
$arregloConsulta=mysql_fetch_array($consultaID);
Haber si me pueden ayudar, por favor.
Hola @nickyto!
Intenta con lo siguiente:
<?php
error_reporting( E_ALL );
if( !empty( $_POST ) ) {
//Ojo en rutas
include("Conexion.php");
include("envioEmail.php");
$detalle = $_POST['detalle'];
$identificar = $_POST['identificar'];
$agrega_tipo = $_POST['agrega_tipo'];
$agrega_origen = $_POST['agrega_origen'];
$deteccion = $_POST['deteccion'];
$tipo_accion = $_POST['tipo_accion'];
$proceso = $_POST['proceso'];
$fuente = $_POST['fuente'];
$resp_envio = $_POST['resp_envio'];
$cargo = $_POST['cargo'];
//se agrega la descripción del factor
$desc_factor1 = $_POST['agrega_factor1'];
$desc_factor2 = $_POST['desc_factor2'];
$desc_factor3 = $_POST['desc_factor3'];
$desc_factor4 = $_POST['desc_factor4'];
$desc_factor5 = $_POST['agrega_factor2'];
$desc_factor6 = $_POST['desc_factor5'];
$desc_factor7 = $_POST['desc_factor6'];
$desc_factor8 = $_POST['desc_factor7'];
$desc_factor9 = $_POST['agrega_factor3'];
$desc_factor10 = $_POST['desc_factor8'];
$desc_factor11 = $_POST['desc_factor9'];
$desc_factor12 = $_POST['desc_factor10'];
$con = Conectarse();
$sql = "INSERT INTO no_conforme (detalle_no_conforme, identifica_correccion, otro_tipo_no_conforme, otro_origen, deteccion, id_origen_hallazgo, id_tipo_accion, id_proceso_area, nombre_envio, cargo_envio)
VALUES
('$detalle', '$identificar', '$agrega_tipo', '$agrega_origen', '$deteccion', '$fuente', '$tipo_accion', '$proceso', '$resp_envio', '$cargo')";
//inserta datos
$consulta = mysql_query($sql, $con) or die ( "No se pudo ejecutar la consulta. Consulta: $sql<br />Error: " .mysql_error( $con ) );
if( $consulta === true) {
if( mysql_affected_rows() > 0) {
$sql = "SELECT MAX(id_origen) FROM no_conforme";
$consultaID = mysql_query($sql, $con);
$arregloConsulta = mysql_fetch_array($consultaID);
}
else {
$err = mysql_error( $con );
echo "No se insertó ningún registro. Error: " . ( strlen( $err ) > 0 ? $err : "Ninguno." ) ;
}
}
else {
echo "Falló la consulta SQL!";
}
}
else {
echo "No hay datos en el _POST";
}
?>
Y publica cualquier error.
Por cierto, cuánto más falta de este código? Puede que los errores estén en otro lugar que no has mostrado.
hola, yo tambien tengo el mismo problema, hace como si guardara en la base de datos, pero al revisarla no almacena los datos. lo mas raro es que no muestra ningun error o problema solo no los almacena, este es el codigo que estoy usando:
<?php
$idfact= $_POST["idfact"];
$fecha = $_POST["fecha"];
$nombre = $_POST["nombre"];
$apellido = $_POST["apellido"];
$cedula = $_POST["cedula"];
$telefono = $_POST["telefono"];
$lugar = $_POST["lugar"];
$dirre =$_POST["dirre"];
$mer1 = $_POST["mer1"];
$pre1 = $_POST["pre1"];
$cant1 = $_POST["cant1"];
$total1 = $_POST["total1"];
$mer2 = $_POST["mer2"];
$pre2 = $_POST["pre2"];
$cant2 = $_POST["cant2"];
$total2 = $_POST["total2"];
$mer3 = $_POST["mer3"];
$pre3 = $_POST["pre3"];
$cant3 = $_POST["cant3"];
$total3 = $_POST["total3"];
$mer4 = $_POST["mer4"];
$pre4 = $_POST["pre4"];
$cant4 = $_POST["cant4"];
$total4 = $_POST["total4"];
$mer5 = $_POST["mer5"];
$pre5 =$_POST["pre5"];
$cant5 = $_POST["cant5"];
$total5 = $_POST["total5"];
$mer6 = $_POST["mer6"];
$pre6 = $_POST["pre6"];
$cant6 = $_POST["cant6"];
$total6 = $_POST["total6"];
$mer7 = $_POST["mer7"];
$pre7 = $_POST["pre7"];
$cant7 = $_POST["cant7"];
$total7 = $_POST["total7"];
$mer8 = $_POST["mer8"];
$pre8 = $_POST["pre8"];
$cant8 = $_POST["cant8"];
$total8 = $_POST["total8"];
$mer9 = $_POST["mer9"];
$pre9 = $_POST["pre9"];
$cant9 = $_POST["cant9"];
$total9 = $_POST["total9"];
$mer10 = $_POST["mer10"];
$pre10 = $_POST["pre10"];
$cant10 = $_POST["cant10"];
$total10 = $_POST["total10"];
$subtotal = $_POST["subtotal1"];
$iva = $_POST["iva1"];
$desc = $_POST["desc1"];
$totalp = $_POST["totalps"];
$tiporadio=$_POST["status"];
if($tiporadio=="venta"){
$perfiltexto="venta";
if ( $_POST["nombre"]!="" and $_POST["apellido"]!="" and $_POST["cedula"]!="" )
{
$conexion= mysql_connect("localhost","root","");
mysql_select_db("servifrenos",$conexion);
$sql = mysql_query ("INSERT INTO factproveedor(fecha,nombre,apellido,cedula,telefono,lugar,dirre,status,mer1,pre1,cant1,total1,mer2,pre2,cant2,total2,mer3,pre3,cant3,total3,mer4,pre4,cant4,total4,mer5,pre5,cant5,total5,mer6,pre6,cant6,total6,mer7,pre7,cant7,total7,mer8,pre8,cant8,total8,mer9,pre9,cant9,total9,mer10,pre10,cant10,total10,subtotal1,iva1,desc1,totals)" + "VALUES('".$fecha."','".$nombre."','".$apellido."','".$cedula."','".$telefono."','".$lugar."','".$dirre."','".$perfiltexto."','".$mer1."','".$pre1."','".$cant1."','".$total1."','".$mer2."','".$pre2."','".$cant2."','".$total2."','".$mer3."','".$pre3."','".$cant3."','".$total3."','".$mer4."','".$pre4."','".$cant4."','".$total4."','".$mer5."','".$pre5."','".$cant5."','".$total5."','".$mer6."','".$pre6."','".$cant6."','".$total6."','".$mer7."','".$pre7."','".$cant7."','".$total7."','".$mer8."','".$pre8."','".$cant8."','".$total8."','".$mer9."','".$pre9."','".$cant9."','".$total9."','".$mer10."','".$pre10."','".$cant10."','".$total10."','".$subtotal."','".$iva."','".$desc."','".$totalp."')");
echo "<div align='center'>Numero de factura es: $idfact</br>" ;
echo "Fecha: $fecha</br></br>" ;
echo "SERVIFRENOS LM2021.CA</br>" ;
echo "RIF:J-40154425-8</br></br>";
echo "<div align='center'>Cliente:</br>" ;
echo "Nombre: $nombre $apellido</br>" ;
echo "Cedula: $cedula </br>" ;
echo "Telefono: $telefono</br>" ;
echo "Lugar: $lugar</br>" ;
echo "Dirrecion:$dirre </br>" ;
echo "status: $perfiltexto</br></br></div>" ;
echo "<td>Producto----------Precio-----------Cantidad-----------Total</br>" ;
echo "$mer1-----------------$pre1 ------------$cant1------------$total1 </br>" ;
echo "$mer2-----------------$pre2 ------------$cant2------------$total2 </br>" ;
echo "$mer3-----------------$pre3 ------------$cant3------------$total3 </br>" ;
echo "$mer4-----------------$pre4 ------------$cant4------------$total4 </br>" ;
echo "$mer5-----------------$pre5 ------------$cant5------------$total5 </br>" ;
echo "$mer6-----------------$pre6 ------------$cant6------------$total6 </br>" ;
echo "$mer7-----------------$pre7 ------------$cant7------------$total7 </br>" ;
echo "$mer8-----------------$pre8 ------------$cant8------------$total8 </br>" ;
echo "$mer9-----------------$pre9 ------------$cant9------------$total9 </br>" ;
echo "$mer10----------------$pre10 -----------$cant10-----------$total10 </br></br>" ;
echo "Subtotal: $subtotal</br>";
echo "Iva: $iva</br>" ;
echo "Descuento: $desc</br>" ;
echo "Total a cancelar: $totalp</br></div>" ;
echo "<script>alert('Se ha registrado correctamente')</script>";
$consulta=mysql_query($sql,$conexion)or die($sql."no se pudo ejecutar la instruccion".mysql_error($conexion));
}
else{
echo "<script>alert('debe colocar un nombre, apellido y cedula correctamente')</script>";
echo "<script>location.href='factprovedor.php'; </script>";
}
}
?>
@luisdark,
Estás ejecutando la consulta SQL dos veces y la segunda vez $sql no es una cadena de texto, sino un recurso (resource, un tipo de dato de PHP). En teoría, la segunda consulta debería fallar y mostrarte un error. Revisa el registro de errores de PHP para obtener más información.
Un consejo: lee sobre la normalización de una base de datos relacional. Esto es porque tu base de datos está mal diseñada, puesto que ninguna tabla debería tener información repetida (y los nombres de las columnas deberían tener nombres más explicativos :P).
Saludos!