Проблемы с вводом, удалением, добавлением и обновлением таблицы с помощью 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 вы можете смешать таблицы?

Author: Juan Pinzón, 2017-05-22

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?

 0
Author: Diablo, 2017-05-23 21:42:05