Pregunta:
Fecha: 21-04-2017 12:11:56
(En Español)
Les cuento que he estado tratando de ingresar datos a traves de un formulario web, los cuales deben de insertar en una tabla de MySQL, pero no lo he logrado, no se si sera por la versión de PHP, pero ya no se que mas hacer,
si alguien me puede brindar ayuda púes es un proyecto que estoy realizando para la universidad.
Me sale esto:
Les comparto el código de registro que tengo, para saber cuales son los errores:
Muy agradecido
Votos: 0 - Respuestas: 2 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
Error al conectar formulario PHP con MySQL[Resuelta]
Compañeros de la comunidad, un cordial saludo.Les cuento que he estado tratando de ingresar datos a traves de un formulario web, los cuales deben de insertar en una tabla de MySQL, pero no lo he logrado, no se si sera por la versión de PHP, pero ya no se que mas hacer,
si alguien me puede brindar ayuda púes es un proyecto que estoy realizando para la universidad.
Me sale esto:
Notice: Undefined index: fecha in C:\xampp\htdocs\prueba\registro.php on line 12 Notice: Undefined index: efectivo in C:\xampp\htdocs\prueba\registro.php on line 13 Notice: Undefined index: tarjeta in C:\xampp\htdocs\prueba\registro.php on line 14 Notice: Undefined index: vcredito in C:\xampp\htdocs\prueba\registro.php on line 15 Notice: Undefined index: fmanual in C:\xampp\htdocs\prueba\registro.php on line 16 Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\prueba\registro.php on line 18 Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\prueba\registro.php on line 20 Notice: Undefined variable: db_cuadre in C:\xampp\htdocs\prueba\registro.php on line 27 Notice: Undefined variable: db_table_empresa in C:\xampp\htdocs\prueba\registro.php on line 27 Notice: Undefined variable: db_cuadre in C:\xampp\htdocs\prueba\registro.php on line 29 Warning: mysqli_select_db() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\prueba\registro.php on line 29 Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\prueba\registro.php on line 30 Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\prueba\registro.php on line 33 Error:
Les comparto el código de registro que tengo, para saber cuales son los errores:
<?php
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "cuadre";
$db_table_name = "empresa";
$db_connection = mysqli_connect($db_host, $db_user, $db_password);
if (!$db_connection) {
die('No se ha podido conectar a la base de datos');
}
$subs_fecha = utf8_decode($_POST['fecha']);
$subs_efectivo = utf8_decode($_POST['efectivo']);
$subs_tarjeta = utf8_decode($_POST['tarjeta']);
$subs_vcredito = utf8_decode($_POST['vcredito']);
$subs_fmanual = utf8_decode($_POST['fmanual']);
$resultado = mysqli_query("SELECT * FROM " . $db_table_name . " WHERE tarjeta = '" . $subs_tarjeta . "'", $db_connection);
if (mysqli_num_rows($resultado) > 0) {
header('Location: Fail.html');
} else {
$insert_value = 'INSERT INTO `' . $db_cuadre . '`.`' . $db_table_empresa . '` (`fecha` , `efectivo` , `tarjeta` , `vcredito` , `fmanual` ) VALUES ("' . $subs_fecha . '", "' . $subs_efectivo . '", "' . $subs_tarjeta . '")';
mysqli_select_db($db_cuadre, $db_connection);
$retry_value = mysqli_query($insert_value, $db_connection);
if (!$retry_value) {
die('Error: ' . mysqli_error());
}
header('Location: Success.html');
}
mysqli_close($db_connection);
?>
Muy agradecido
Votos: 0 - Respuestas: 2 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 21-04-2017 14:44:13 Te recomiendo utilizar PDO, es aún mejor que MySQLi
1. Primeramente para solucionar el undefined index se debe evaluar la variable recibida del formulario, se debe poner:
if(isset($_POST['fecha'])) { $subs_fecha = ($_POST['fecha']); }
y asi con las demas variables
2. Creas un archivo de conexión separado, y por ejemplo lo nombras como conexion.php, o el nombre que mejor te parezca y pones este codigo:
<?php try { $con = new PDO("mysql:host=localhost;dbname=cuadre", "root", ""); $con->query("SET NAMES 'utf-8'"); } catch (Exception $e) { echo "No se ha podido conectar con la base de datos"; exit; } return $con; ?>
y en el archivo registro.php haga la referencia:
include("conexion.php);
luego para insertar en la base de datos
$sql = "INSERT INTO empresa (fecha,efectivo,tarjeta,vcredito,fmanual) VALUES (:fecha, :efectivo,:tarjeta,:vcredito,:fmanual)"; $stmt = $con->prepare($sql); $stmt->bindParam(':fecha', $fecha, PDO::PARAM_STR); $stmt->bindParam(':efectivo', $efectivo, PDO::PARAM_STR); $stmt->bindParam(':tarjeta', $tarjeta, PDO::PARAM_STR); $stmt->bindParam(':vcredito', $vcredito, PDO::PARAM_STR); $stmt->bindParam(':fmanual', $fmanual, PDO::PARAM_STR); $stmt->execute();Votos: 2 - Link respuesta -
Fecha: 22-04-2017 11:57:49 mysqli_query() necesita por lo menos dos parametros :
link
Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()
query
The query string.
Data inside the query should be properly escaped.
mysqli_query($link, $query)
http://php.net/manual/en/mysqli.query.php Votos: 2 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
