Проблемы с вводом, удалением, добавлением и обновлением таблицы с помощью PHP и MySQL
поскольку это мой первый раз на этом сайте и будучи новичком в сообществе stackoverflow на испанском языке, я переучивал php, но... плохо то, что он никогда не работает для меня после того, как я создал тест прямого подключения к PhpMyAdmin или прямо к база данных SQL.
я добавляю другие коды и sql. Надеюсь, вы можете ответить мне, я буду следить за вашими ответами, потому что повторное обучение php затрудняет мне понимание.
Много приветствий уважаемые!
-- phpMyAdmin SQL Dump
-- version 4.6.5.2
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 19-05-2017 a las 15:57:32
-- Versión del servidor: 10.1.21-MariaDB
-- Versión de PHP: 5.6.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de datos: `webpractica`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `estado`
--
CREATE TABLE `estado` (
`id_estado` int(11) NOT NULL,
`Estado` varchar(100) DEFAULT NULL,
`Fecha_Creacion` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Volcado de datos para la tabla `estado`
--
INSERT INTO `estado` (`id_estado`, `Estado`, `Fecha_Creacion`) VALUES
(1, 'Completado', '2017-05-13'),
(2, 'Incompleto', '2017-05-13'),
(3, 'Analizado', '2017-05-13'),
(4, 'Bloqueado', '2017-05-13');
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla `estado`
--
ALTER TABLE `estado`
ADD PRIMARY KEY (`id_estado`);
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla `estado`
--
ALTER TABLE `estado`
MODIFY `id_estado` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
<?php //pruebadeconexion.php
$link = mysql_connect("localhost", "root", "localhost");
mysql_select_db("webpractica", $link);
$result = mysql_query("SELECT id_estado, estado, fecha_creacion FROM estado", $link);
if ($row = mysql_fetch_array($result)) {
echo "<table border = '1'> \n";
echo "<tr><td>id_estado</td><td>estado</td><td>fecha_creacion</tr> \n";
do {
echo "<tr><td>".$row["id_estado"]."</td><td>".$row["estado"]."</td><td>".$row["fecha_creacion"]."</td></tr>\n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "No se ha encontrado ningun registro!";
}
?>
// Eso es lo que me había funcionado antes
<?php //modifica.php
if (isset($id)) {
$link = mysql_connect("localhost", "root", "localhost");
mysql_select_db("webpractica", $db);
$sql = "SELECT * FROM estado WHERE id_estado=$id_estado";
$result = mysql_query($sql);
$sql = "UPDATE agenda SET id_estado=$id_estado Estado='$estado', Fecha_Creacion=$fecha_creacion";
$result = mysql_query($sql);
} else {
echo "Debe especificar un 'id_estado'\n";
}
?>
<?php //borrado.php
if (isset($id)) {
$link = mysql_connect("localhost", "root", "localhost");
mysql_select_db("webpractica", $db);
$sql = "DELETE estado WHERE id_estado=$id_estado";
$result = mysql_query($sql);
} else {
echo "Debe especificar un 'id_estado'.\n";
}
?>
<form method="post" action="anadir.php">
id_estado: <input type="Text" name="id_estado"><br>
Estado: <input type="Text" name="Estado"><br>
Fecha_Creacion: <input type="date" name=Fecha_Creacion><br>
<input type="Submit" name="enviar" value="Aceptar información">
</form>
<?php // anadir.php
if (isset($enviar)) {
// process form
$link = mysql_connect("localhost", "root", "localhost");
mysql_select_db("webpractica", $link);
$sql = "INSERT INTO estado (id_estado, Estado, Fecha_Creacion) " + "VALUES($id_estado, '$Estado', $Fecha_Creacion)";
$result = mysql_query($sql);
echo "Recibido!\n";
} else {
}
?>
// Esto es lo que he tratado de añadir una pequeña parte del html, pero aplicando con una mezcla con el código Php junto a MySql. Nunca me resultó.
P. D: вопрос, в php с html и mysql вы можете смешать таблицы?
1 answers
Я отвечу на часть вашего вопроса, чтобы немного ориентироваться, чтобы вы могли переписать остальную часть кода.
Чтобы получить данные из вашей формы HTML
в PHP
, используется super global $_POST['identificador_HTML']
, то есть, мы добавляем атрибут name="identificador"
, если мы используем method="GET"
, мы будем использовать super global $_GET['identificador']
.
Предупреждение
РасширениеMysql*
было объявлено устаревшим вPHP 5.5.0
и удалено вPHP 7.0.0.
вместо этого следует использовать расширенияMySQLi
илиPDO_MySQL
.
Пример
Форма HTML
<form method="POST" action="anadir.php">
id_estado: <input type="text" name="id_estado"><br>
Estado: <input type="text" name="estado"><br>
Fecha_Creacion: <input type="text" name="fecha" value="<?php date_default_timezone_set('Europe/Madrid'); echo date('Y-m-d'); ?>"><br>
<input type="submit" name="enviar" value="Aceptar información">
</form>
Anadir.php
<?php
//Reseteamos variables PHP.
$msg = $id_estado = $estado = $fecha_actual = NULL;
//Comprobamos que este definido el formulario y no es NULL.
if (isset($_POST['enviar'])) {
//Obtener datos desde formulario.
$id_estado = $_POST['id_estado'];
$estado = $_POST['estado'];
$fecha_actual = $_POST['fecha'];
//Comprobamos que sean verdaderos los datos.
if ($id_estado && $estado && $fecha_actual) {
//Creamos conexión (Estilo por procedimientos).
$link = mysqli_connect("localhost", "root", "contraseña", "webpractica");
///comprobar la conexión.
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
//Sentencia insertar.
$query = mysqli_query($link,"INSERT INTO estado (id_estado, Estado, Fecha_Creacion) VALUES ('$id_estado','$estado','$fecha_actual')");
//Comprobamos que se ejecuto correctamente nuestra sentencia.
if (!$query) { #falso.
printf("Error: %s\n", mysqli_error($link));
} else { #Verdadero.
$msg = "Los datos se insertaron correctamente.";
}
}
}
//Respuesta PHP.
echo $msg;
?>
Какой-Либо источник, который может вам помочь:
mysqli_query
PHP 5 Complete Form Example
Я советую вам для безопасности использовать операторы mysqli подготовьте или PDO. я также советую вам хорошо читать Как избегайте SQL-инъекций в PHP?