CRUD PERSONAS FOTO FECH API JSON PHP MYSQL PDO
form fetch api json php insert sql mysql pdo nombre apellido y photo
I understand that you want to use the Fetch API to
send JSON data from a PHP script to a MySQL database using PDO, and the data
includes a name, surname, and a photo. Here's an example of how you can achieve
this:
Create a form in HTML that allows the user to enter
their name, surname, and photo:
php
Copy code
<form>
<label
for="name">Name:</label>
<input
type="text" id="name" name="name">
<label
for="surname">Surname:</label>
<input
type="text" id="surname" name="surname">
<label
for="photo">Photo:</label>
<input
type="file" id="photo" name="photo">
<button
type="button" onclick="sendData()">Submit</button>
</form>
Write a JavaScript function that uses the Fetch API to
send the form data as JSON to the PHP script:
javascript
Copy code
function sendData() {
const name =
document.getElementById('name').value;
const surname
= document.getElementById('surname').value;
const photo =
document.getElementById('photo').files[0];
const formData
= new FormData();
formData.append('name', name);
formData.append('surname', surname);
formData.append('photo', photo);
fetch('insert.php', {
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> console.log(data))
.catch(error => console.error(error));
}
Create a PHP script called "insert.php" that
receives the JSON data, processes it, and inserts it into the MySQL database
using PDO:
php
Copy code
<?php
// Connect to the database using PDO
$pdo = new
PDO('mysql:host=localhost;dbname=mydatabase', 'myusername', 'mypassword');
// Get the JSON data from the request body
$data = json_decode(file_get_contents('php://input'),
true);
// Insert the data into the database
$stmt = $pdo->prepare('INSERT INTO mytable (name,
surname, photo) VALUES (:name, :surname, :photo)');
$stmt->bindParam(':name', $data['name']);
$stmt->bindParam(':surname', $data['surname']);
// Handle the photo upload
$target_dir = 'uploads/';
$target_file = $target_dir .
basename($_FILES['photo']['name']);
move_uploaded_file($_FILES['photo']['tmp_name'],
$target_file);
$stmt->bindParam(':photo', $target_file);
$stmt->execute();
// Send a response back to the client
$response = ['status' => 'success'];
header('Content-Type: application/json');
echo json_encode($response);
?>
Note that this example assumes that the MySQL table
"mytable" has columns called "name", "surname",
and "photo", and that the "photo" column is a string that
stores the path to the uploaded photo file. You may need to modify the code to
match your specific database schema. Additionally, you should consider adding
validation and error handling to your code to ensure that the data is inserted
correctly and securely.
form fetch api json php UPDATE sql mysql pdo nombre apellido y photo
Sure, I can provide an example of how to use the Fetch
API with PHP and MySQL PDO to update data in a MySQL database. Here's a
step-by-step guide:
Create an HTML form that allows the user to enter the
data to be updated:
ruby
Copy code
<form>
<label
for="id">ID:</label>
<input
type="text" id="id" name="id">
<label
for="name">Name:</label>
<input
type="text" id="name" name="name">
<label
for="surname">Surname:</label>
<input
type="text" id="surname" name="surname">
<label
for="photo">Photo:</label>
<input
type="file" id="photo" name="photo">
<button
type="button" onclick="sendData()">Update</button>
</form>
Write a JavaScript function that uses the Fetch API to
send the form data as JSON to the PHP script:
javascript
Copy code
function sendData() {
const id =
document.getElementById('id').value;
const name =
document.getElementById('name').value;
const surname
= document.getElementById('surname').value;
const photo =
document.getElementById('photo').files[0];
const formData
= new FormData();
formData.append('id', id);
formData.append('name', name);
formData.append('surname', surname);
formData.append('photo', photo);
fetch('update.php', {
method: 'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> console.log(data))
.catch(error => console.error(error));
}
Create a PHP script called "update.php" that
receives the JSON data, processes it, and updates the corresponding record in
the MySQL database using PDO:
php
Copy code
<?php
// Connect to the database using PDO
$pdo = new
PDO('mysql:host=localhost;dbname=mydatabase', 'myusername', 'mypassword');
// Get the JSON data from the request body
$data = json_decode(file_get_contents('php://input'),
true);
// Update the data in the database
$stmt = $pdo->prepare('UPDATE mytable SET name =
:name, surname = :surname, photo = :photo WHERE id = :id');
$stmt->bindParam(':id', $data['id']);
$stmt->bindParam(':name', $data['name']);
$stmt->bindParam(':surname', $data['surname']);
// Handle the photo upload
$target_dir = 'uploads/';
$target_file = $target_dir .
basename($_FILES['photo']['name']);
move_uploaded_file($_FILES['photo']['tmp_name'],
$target_file);
$stmt->bindParam(':photo', $target_file);
$stmt->execute();
// Send a response back to the client
$response = ['status' => 'success'];
header('Content-Type: application/json');
echo json_encode($response);
?>
Note that this example assumes that the MySQL table "mytable"
has columns called "id", "name", "surname", and
"photo", and that the "photo" column is a string that
stores the path to the uploaded photo file. You may need to modify the code to
match your specific database schema. Additionally, you should consider adding
validation and error handling to your code to ensure that the data is updated
correctly and securely.
form fetch api json php DELETE sql mysql pdo nombre apellido y UNLINK
photo
Sure, here's an updated example of how to use the
Fetch API with PHP and MySQL PDO to delete data from a MySQL database, and also
delete the corresponding photo file from the server using the unlink()
function:
Create an HTML form that allows the user to enter the
ID of the record to be deleted:
php
Copy code
<form>
<label
for="id">ID:</label>
<input
type="text" id="id" name="id">
<button
type="button" onclick="sendData()">Delete</button>
</form>
Write a JavaScript function that uses the Fetch API to
send the ID as JSON to the PHP script:
javascript
Copy code
function sendData() {
const id =
document.getElementById('id').value;
const formData
= new FormData();
formData.append('id', id);
fetch('delete.php', {
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> console.log(data))
.catch(error => console.error(error));
}
Create a PHP script called "delete.php" that
receives the JSON data, processes it, deletes the corresponding record from the
MySQL database using PDO, and deletes the corresponding photo file from the
server using the unlink() function:
php
Copy code
<?php
// Connect to the database using PDO
$pdo = new
PDO('mysql:host=localhost;dbname=mydatabase', 'myusername', 'mypassword');
// Get the JSON data from the request body
$data = json_decode(file_get_contents('php://input'),
true);
// Get the photo file path from the database
$stmt = $pdo->prepare('SELECT photo FROM mytable
WHERE id = :id');
$stmt->bindParam(':id', $data['id']);
$stmt->execute();
$photo = $stmt->fetchColumn();
// Delete the data from the database
$stmt = $pdo->prepare('DELETE FROM mytable WHERE id
= :id');
$stmt->bindParam(':id', $data['id']);
$stmt->execute();
// Delete the photo file from the server
unlink($photo);
// Send a response back to the client
$response = ['status' => 'success'];
header('Content-Type: application/json');
echo json_encode($response);
?>
Note that this example assumes that the MySQL table
"mytable" has columns called "id", "name",
"surname", and "photo", and that the "photo"
column is a string that stores the path to the uploaded photo file. You may
need to modify the code to match your specific database schema. Additionally,
you should consider adding validation and error handling to your code to ensure
that the data is deleted correctly and securely.
////////////////////////////////ESTEEEEEEEEEEEEEEEEEEEEEEEEEEEEE///////////////////////////////////////
haz un codigo con
fetch api json php insert sql mysql pdo nombre apellido y photo con formulario
html
Para hacer lo que me
pides, primero necesitaremos crear una base de datos y una tabla para almacenar
los datos que ingresará el usuario. Luego, podemos escribir el código PHP que
procesará los datos del formulario y los insertará en la base de datos. También
necesitaremos escribir el código JavaScript que enviará los datos del
formulario al servidor utilizando Fetch API.
Aquí está el código
completo que hace lo que pides:
HTML:
php
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Insertar
datos en MySQL con PHP y Fetch API</title>
</head>
<body>
<form
id="myForm" enctype="multipart/form-data">
<label
for="nombre">Nombre:</label>
<input
type="text" id="nombre"
name="nombre"><br><br>
<label
for="apellido">Apellido:</label>
<input
type="text" id="apellido"
name="apellido"><br><br>
<label
for="photo">Foto:</label>
<input
type="file" id="photo"
name="photo"><br><br>
<input
type="submit" value="Enviar">
</form>
<script>
const
form = document.getElementById('myForm');
form.addEventListener('submit',
e => {
e.preventDefault();
const
formData = new FormData(form);
fetch('insertar.php',
{
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> {
console.log(data);
})
.catch(error => {
console.error(error);
})
});
</script>
</body>
</html>
PHP (insertar.php):
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$photo = $_FILES['photo']['name'];
$stmt = $conn->prepare("INSERT INTO
personas (nombre, apellido, photo) VALUES (:nombre, :apellido, :photo)");
$stmt->bindParam(':nombre', $nombre);
$stmt->bindParam(':apellido',
$apellido);
$stmt->bindParam(':photo', $photo);
$stmt->execute();
$target_dir
= "uploads/";
$target_file
= $target_dir . basename($_FILES["photo"]["name"]);
move_uploaded_file($_FILES["photo"]["tmp_name"],
$target_file);
$response =
array('status' => 'success', 'message' => 'Datos insertados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero creamos una conexión a la base de datos utilizando PDO. Luego,
obtenemos los datos del formulario utilizando la variable superglobal $_POST.
También obtenemos el nombre del archivo de imagen utilizando la variable
superglobal $_FILES. Insertamos los datos en la tabla "personas"
utilizando una sentencia preparada de PDO y movemos la imagen a la carpeta
"uploads". Finalmente, enviamos una respuesta JSON al cliente
indicando si los datos se insertaron correctamente o si ocurrió un error.
Recuerda reemplazar
"tu_usuario", "tu_contraseña
jose fernandez
haz un codigo con
fetch api json php UPDATE sql mysql pdo nombre apellido y photo con formulario
html
Para hacer lo que me
pides, necesitaremos crear una tabla en la base de datos que tenga los campos
"id", "nombre", "apellido" y "photo".
Luego, podemos escribir el código PHP que actualizará los datos en la base de
datos. También necesitaremos escribir el código JavaScript que enviará los
datos del formulario al servidor utilizando Fetch API.
Aquí está el código
completo que hace lo que pides:
HTML:
php
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Actualizar
datos en MySQL con PHP y Fetch API</title>
</head>
<body>
<form
id="myForm" enctype="multipart/form-data">
<input
type="hidden" id="id" name="id">
<label
for="nombre">Nombre:</label>
<input
type="text" id="nombre"
name="nombre"><br><br>
<label
for="apellido">Apellido:</label>
<input
type="text" id="apellido"
name="apellido"><br><br>
<label
for="photo">Foto:</label>
<input
type="file" id="photo"
name="photo"><br><br>
<input
type="submit" value="Actualizar">
</form>
<script>
const
form = document.getElementById('myForm');
form.addEventListener('submit',
e => {
e.preventDefault();
const
formData = new FormData(form);
fetch('actualizar.php',
{
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> {
console.log(data);
})
.catch(error => {
console.error(error);
})
});
</script>
</body>
</html>
PHP (actualizar.php):
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$id =
$_POST['id'];
$nombre =
$_POST['nombre'];
$apellido = $_POST['apellido'];
$photo = $_FILES['photo']['name'];
$stmt = $conn->prepare("UPDATE
personas SET nombre = :nombre, apellido = :apellido, photo = :photo WHERE id =
:id");
$stmt->bindParam(':id', $id);
$stmt->bindParam(':nombre', $nombre);
$stmt->bindParam(':apellido',
$apellido);
$stmt->bindParam(':photo', $photo);
$stmt->execute();
$target_dir
= "uploads/";
$target_file
= $target_dir . basename($_FILES["photo"]["name"]);
move_uploaded_file($_FILES["photo"]["tmp_name"],
$target_file);
$response =
array('status' => 'success', 'message' => 'Datos actualizados correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero creamos una conexión a la base de datos utilizando PDO. Luego,
obtenemos los datos del formulario utilizando la variable superglobal $_POST.
También obtenemos el nombre del archivo de imagen utilizando la variable
superglobal $_FILES. Actualizamos los datos en la tabla "personas"
utilizando una sentencia preparada de PDO y movemos la imagen a la carpeta
"uploads". Finalmente, env
jose fernandez
haz un codigo con
fetch api json php DELETE sql mysql pdo nombre apellido y photo con formulario
html
Para hacer lo que me
pides, necesitaremos crear una tabla en la base de datos que tenga los campos
"id", "nombre", "apellido" y "photo".
Luego, podemos escribir el código PHP que eliminará los datos en la base de
datos. También necesitaremos escribir el código JavaScript que enviará los
datos del formulario al servidor utilizando Fetch API.
Aquí está el código
completo que hace lo que pides:
HTML:
php
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Eliminar
datos en MySQL con PHP y Fetch API</title>
</head>
<body>
<form
id="myForm">
<input
type="hidden" id="id" name="id">
<label
for="nombre">Nombre:</label>
<input
type="text" id="nombre" name="nombre"
disabled><br><br>
<label
for="apellido">Apellido:</label>
<input
type="text" id="apellido" name="apellido"
disabled><br><br>
<label
for="photo">Foto:</label>
<input
type="text" id="photo" name="photo"
disabled><br><br>
<input
type="submit" value="Eliminar">
</form>
<script>
const
form = document.getElementById('myForm');
form.addEventListener('submit',
e => {
e.preventDefault();
const
formData = new FormData(form);
fetch('eliminar.php',
{
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> {
console.log(data);
})
.catch(error => {
console.error(error);
})
});
</script>
</body>
</html>
PHP (eliminar.php):
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$id =
$_POST['id'];
$stmt =
$conn->prepare("DELETE FROM personas WHERE id = :id");
$stmt->bindParam(':id',
$id);
$stmt->execute();
$response =
array('status' => 'success', 'message' => 'Datos eliminados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero creamos una conexión a la base de datos utilizando PDO. Luego,
obtenemos el ID del formulario utilizando la variable superglobal $_POST.
Eliminamos los datos en la tabla "personas" utilizando una sentencia
preparada de PDO. Finalmente, enviamos una respuesta en formato JSON que indica
si la eliminación fue exitosa o no.
En el formulario
HTML, utilizamos un campo "disabled" para que el usuario no pueda
editar los campos de nombre, apellido y foto, ya que estamos eliminando los
datos.
jose fernandez
eliminar.php INCLUIR
CODIGO PARA BORRAR LA FOTO DENTRO DE LA CARPETA
Para eliminar la
foto de la carpeta al mismo tiempo que se eliminan los datos de la base de datos,
podemos utilizar la función unlink() de PHP.
Aquí está el código
PHP actualizado con la eliminación de la foto:
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$id = $_POST['id'];
// Obtenemos el nombre de la foto asociada
a la persona a eliminar
$stmt =
$conn->prepare("SELECT photo FROM personas WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$row =
$stmt->fetch();
$photo = $row['photo'];
// Eliminamos los datos de la persona de la
tabla "personas"
$stmt = $conn->prepare("DELETE
FROM personas WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
// Eliminamos la foto asociada a la persona
de la carpeta
unlink('ruta/a/la/carpeta/' . $photo);
$response =
array('status' => 'success', 'message' => 'Datos eliminados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero obtenemos el nombre de la foto asociada a la persona a eliminar
mediante una consulta SQL. Luego, eliminamos los datos de la persona de la
tabla "personas". Finalmente, utilizamos la función unlink() para
eliminar la foto de la carpeta.
Ten en cuenta que
debes reemplazar la cadena 'ruta/a/la/carpeta/' con la ruta real a la carpeta
donde se encuentran las fotos.
////////////
haz un codigo con
fetch api json php insert sql mysql pdo nombre apellido y photo con formulario
html
Para hacer lo que me
pides, primero necesitaremos crear una base de datos y una tabla para almacenar
los datos que ingresará el usuario. Luego, podemos escribir el código PHP que
procesará los datos del formulario y los insertará en la base de datos. También
necesitaremos escribir el código JavaScript que enviará los datos del
formulario al servidor utilizando Fetch API.
Aquí está el código
completo que hace lo que pides:
HTML:
php
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Insertar
datos en MySQL con PHP y Fetch API</title>
</head>
<body>
<form
id="myForm" enctype="multipart/form-data">
<label
for="nombre">Nombre:</label>
<input
type="text" id="nombre"
name="nombre"><br><br>
<label
for="apellido">Apellido:</label>
<input
type="text" id="apellido" name="apellido"><br><br>
<label
for="photo">Foto:</label>
<input
type="file" id="photo"
name="photo"><br><br>
<input
type="submit" value="Enviar">
</form>
<script>
const
form = document.getElementById('myForm');
form.addEventListener('submit',
e => {
e.preventDefault();
const
formData = new FormData(form);
fetch('insertar.php',
{
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> {
console.log(data);
})
.catch(error => {
console.error(error);
})
});
</script>
</body>
</html>
PHP (insertar.php):
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$photo = $_FILES['photo']['name'];
$stmt = $conn->prepare("INSERT INTO
personas (nombre, apellido, photo) VALUES (:nombre, :apellido, :photo)");
$stmt->bindParam(':nombre', $nombre);
$stmt->bindParam(':apellido',
$apellido);
$stmt->bindParam(':photo', $photo);
$stmt->execute();
$target_dir
= "uploads/";
$target_file
= $target_dir . basename($_FILES["photo"]["name"]);
move_uploaded_file($_FILES["photo"]["tmp_name"],
$target_file);
$response =
array('status' => 'success', 'message' => 'Datos insertados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero creamos una conexión a la base de datos utilizando PDO. Luego,
obtenemos los datos del formulario utilizando la variable superglobal $_POST.
También obtenemos el nombre del archivo de imagen utilizando la variable
superglobal $_FILES. Insertamos los datos en la tabla "personas"
utilizando una sentencia preparada de PDO y movemos la imagen a la carpeta
"uploads". Finalmente, enviamos una respuesta JSON al cliente
indicando si los datos se insertaron correctamente o si ocurrió un error.
Recuerda reemplazar
"tu_usuario", "tu_contraseña
jose fernandez
haz un codigo con
fetch api json php UPDATE sql mysql pdo nombre apellido y photo con formulario
html
Para hacer lo que me
pides, necesitaremos crear una tabla en la base de datos que tenga los campos
"id", "nombre", "apellido" y "photo".
Luego, podemos escribir el código PHP que actualizará los datos en la base de
datos. También necesitaremos escribir el código JavaScript que enviará los
datos del formulario al servidor utilizando Fetch API.
Aquí está el código
completo que hace lo que pides:
HTML:
php
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Actualizar
datos en MySQL con PHP y Fetch API</title>
</head>
<body>
<form
id="myForm" enctype="multipart/form-data">
<input
type="hidden" id="id" name="id">
<label
for="nombre">Nombre:</label>
<input
type="text" id="nombre"
name="nombre"><br><br>
<label
for="apellido">Apellido:</label>
<input
type="text" id="apellido"
name="apellido"><br><br>
<label
for="photo">Foto:</label>
<input
type="file" id="photo"
name="photo"><br><br>
<input
type="submit" value="Actualizar">
</form>
<script>
const
form = document.getElementById('myForm');
form.addEventListener('submit',
e => {
e.preventDefault();
const
formData = new FormData(form);
fetch('actualizar.php',
{
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> {
console.log(data);
})
.catch(error => {
console.error(error);
})
});
</script>
</body>
</html>
PHP (actualizar.php):
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$id =
$_POST['id'];
$nombre =
$_POST['nombre'];
$apellido = $_POST['apellido'];
$photo = $_FILES['photo']['name'];
$stmt = $conn->prepare("UPDATE
personas SET nombre = :nombre, apellido = :apellido, photo = :photo WHERE id =
:id");
$stmt->bindParam(':id', $id);
$stmt->bindParam(':nombre', $nombre);
$stmt->bindParam(':apellido',
$apellido);
$stmt->bindParam(':photo', $photo);
$stmt->execute();
$target_dir
= "uploads/";
$target_file
= $target_dir . basename($_FILES["photo"]["name"]);
move_uploaded_file($_FILES["photo"]["tmp_name"],
$target_file);
$response =
array('status' => 'success', 'message' => 'Datos actualizados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero creamos una conexión a la base de datos utilizando PDO. Luego,
obtenemos los datos del formulario utilizando la variable superglobal $_POST.
También obtenemos el nombre del archivo de imagen utilizando la variable
superglobal $_FILES. Actualizamos los datos en la tabla "personas"
utilizando una sentencia preparada de PDO y movemos la imagen a la carpeta
"uploads". Finalmente, env
jose fernandez
haz un codigo con
fetch api json php DELETE sql mysql pdo nombre apellido y photo con formulario
html
Para hacer lo que me
pides, necesitaremos crear una tabla en la base de datos que tenga los campos
"id", "nombre", "apellido" y "photo".
Luego, podemos escribir el código PHP que eliminará los datos en la base de
datos. También necesitaremos escribir el código JavaScript que enviará los
datos del formulario al servidor utilizando Fetch API.
Aquí está el código
completo que hace lo que pides:
HTML:
php
Copy code
<!DOCTYPE html>
<html>
<head>
<title>Eliminar
datos en MySQL con PHP y Fetch API</title>
</head>
<body>
<form
id="myForm">
<input
type="hidden" id="id" name="id">
<label for="nombre">Nombre:</label>
<input
type="text" id="nombre" name="nombre"
disabled><br><br>
<label
for="apellido">Apellido:</label>
<input
type="text" id="apellido" name="apellido"
disabled><br><br>
<label
for="photo">Foto:</label>
<input
type="text" id="photo" name="photo"
disabled><br><br>
<input
type="submit" value="Eliminar">
</form>
<script>
const
form = document.getElementById('myForm');
form.addEventListener('submit',
e => {
e.preventDefault();
const
formData = new FormData(form);
fetch('eliminar.php',
{
method:
'POST',
body:
formData
})
.then(response
=> response.json())
.then(data
=> {
console.log(data);
})
.catch(error => {
console.error(error);
})
});
</script>
</body>
</html>
PHP (eliminar.php):
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$id =
$_POST['id'];
$stmt =
$conn->prepare("DELETE FROM personas WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$response =
array('status' => 'success', 'message' => 'Datos eliminados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero creamos una conexión a la base de datos utilizando PDO. Luego,
obtenemos el ID del formulario utilizando la variable superglobal $_POST.
Eliminamos los datos en la tabla "personas" utilizando una sentencia
preparada de PDO. Finalmente, enviamos una respuesta en formato JSON que indica
si la eliminación fue exitosa o no.
En el formulario
HTML, utilizamos un campo "disabled" para que el usuario no pueda
editar los campos de nombre, apellido y foto, ya que estamos eliminando los
datos.
jose fernandez
eliminar.php INCLUIR
CODIGO PARA BORRAR LA FOTO DENTRO DE LA CARPETA
Para eliminar la
foto de la carpeta al mismo tiempo que se eliminan los datos de la base de
datos, podemos utilizar la función unlink() de PHP.
Aquí está el código
PHP actualizado con la eliminación de la foto:
php
Copy code
<?php
$servername = "localhost";
$username =
"tu_usuario";
$password =
"tu_contraseña";
$dbname =
"tu_base_de_datos";
try {
$conn = new
PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$id = $_POST['id'];
// Obtenemos el nombre de la foto asociada
a la persona a eliminar
$stmt = $conn->prepare("SELECT
photo FROM personas WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$row =
$stmt->fetch();
$photo = $row['photo'];
// Eliminamos los datos de la persona de la
tabla "personas"
$stmt = $conn->prepare("DELETE
FROM personas WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
// Eliminamos la foto asociada a la persona
de la carpeta
unlink('ruta/a/la/carpeta/' . $photo);
$response =
array('status' => 'success', 'message' => 'Datos eliminados
correctamente');
echo
json_encode($response);
}
catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => $e->getMessage());
echo json_encode($response);
}
$conn = null;
?>
En el código PHP,
primero obtenemos el nombre de la foto asociada a la persona a eliminar
mediante una consulta SQL. Luego, eliminamos los datos de la persona de la
tabla "personas". Finalmente, utilizamos la función unlink() para
eliminar la foto de la carpeta.
Ten en cuenta que
debes reemplazar la cadena 'ruta/a/la/carpeta/' con la ruta real a la carpeta
donde se encuentran las fotos.
jose fernandez
UTILIZAR
document.getElementById
Si quieres utilizar
document.getElementById para borrar la foto de la carpeta desde el lado del
cliente, aquí te muestro cómo podrías hacerlo:
En tu archivo HTML,
agrega un elemento img donde se mostrará la foto de la persona a eliminar:
html
Copy code
<img
id="photo" src="ruta/a/la/carpeta/nombre_de_la_foto.jpg"
alt="Foto de la persona">
Agrega un evento
onclick a tu botón de eliminación en el archivo HTML:
html
Copy code
<button id="deleteButton"
onclick="deletePerson()">Eliminar</button>
En tu archivo
JavaScript, define la función deletePerson() que se encargará de eliminar la
persona de la base de datos y la foto de la carpeta:
javascript
Copy code
function deletePerson() {
// Obtener el ID de la persona a eliminar
const id =
document.getElementById('id').value;
// Crear una solicitud de eliminación
utilizando Fetch API
fetch('eliminar.php', {
method:
'POST',
headers: {
'Content-Type': 'application/json'
},
body:
JSON.stringify({ id })
})
.then(response
=> response.json())
.then(data => {
// Si se eliminaron los datos
correctamente, eliminar la foto de la carpeta
if (data.status === 'success') {
const
photo = document.getElementById('photo').src.split('/').pop();
fetch(`eliminar_foto.php?photo=${photo}`)
.then(response => response.json())
.then(data
=> {
if (data.status === 'success') {
// Mostrar un mensaje de éxito y
recargar la página
alert(data.message);
window.location.reload();
} else {
alert(data.message);
}
})
.catch(error => console.error(error));
} else {
alert(data.message);
}
})
.catch(error
=> console.error(error));
}
En esta función,
primero obtenemos el ID de la persona a eliminar mediante
document.getElementById('id').value. Luego, creamos una solicitud de
eliminación utilizando Fetch API. Si los datos se eliminaron correctamente,
obtenemos el nombre de la foto de la persona mediante
document.getElementById('photo').src.split('/').pop() (asumiendo que la ruta de
la foto termina con el nombre de la foto) y creamos otra solicitud de
eliminación para eliminar la foto de la carpeta. Finalmente, mostramos un
mensaje de éxito y recargamos la página.
En tu archivo
eliminar_foto.php, actualiza el código para recibir el nombre de la foto
mediante el parámetro photo y eliminar la foto de la carpeta:
php
Copy code
<?php
$photo = $_GET['photo'];
if (unlink('ruta/a/la/carpeta/' . $photo)) {
$response =
array('status' => 'success', 'message' => 'Foto eliminada
correctamente');
} else {
$response =
array('status' => 'error', 'message' => 'Error al eliminar la foto');
}
echo json_encode($response);
?>
En este código,
utilizamos unlink() para eliminar la foto de la carpeta. Si la eliminación es
exitosa, enviamos una respuesta JSON con status igual a 'success' y message
igual a 'Foto eliminada correctamente'. De lo contrario, enviamos una respuesta
con status igual a 'error' y message igual a 'Error al eliminar la foto'.
Ten en cuenta que
debes reemplazar la cadena `'ruta/a/
jose fernandez
MUESTRAME SOLO EL
CODIGO eliminar.php
Por supuesto, aquí
tienes el código para eliminar.php que incluye la eliminación de la foto de la
carpeta:
php
Copy code
<?php
// Verificar si se
recibió un ID
if
(isset($_POST['id'])) {
// Conectar a la base de datos con PDO
$dsn =
'mysql:host=localhost;dbname=nombre_de_la_base_de_datos';
$usuario = 'nombre_de_usuario';
$contraseña = 'contraseña_del_usuario';
try {
$conexion = new PDO($dsn, $usuario,
$contraseña);
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Error al conectarse a la base de
datos: ' . $e->getMessage();
exit;
}
// Obtener el ID y el nombre completo de la
persona a eliminar
$id = $_POST['id'];
$consulta = 'SELECT nombre, apellido, foto
FROM personas WHERE id = :id';
$sentencia = $conexion->prepare($consulta);
$sentencia->bindParam(':id', $id,
PDO::PARAM_INT);
$sentencia->execute();
$resultado =
$sentencia->fetch(PDO::FETCH_ASSOC);
$nombreCompleto = $resultado['nombre'] . ' '
. $resultado['apellido'];
$foto = $resultado['foto'];
// Eliminar la persona de la base de datos
$consulta = 'DELETE FROM personas WHERE
id = :id';
$sentencia =
$conexion->prepare($consulta);
$sentencia->bindParam(':id', $id,
PDO::PARAM_INT);
$sentencia->execute();
// Verificar si se eliminaron los datos
correctamente
if ($sentencia->rowCount() == 1) {
// Eliminar la foto de la carpeta
$rutaFoto = 'ruta/a/la/carpeta/' . $foto;
if (unlink($rutaFoto)) {
// Enviar una respuesta JSON con éxito
$respuesta = array('status' => 'success',
'message' => "La persona $nombreCompleto y la foto fueron eliminadas
correctamente");
echo json_encode($respuesta);
} else {
// Enviar una respuesta JSON con error
$respuesta = array('status' =>
'error', 'message' => 'Error al eliminar la foto');
echo json_encode($respuesta);
}
} else {
// Enviar una respuesta JSON con error
$respuesta = array('status' => 'error',
'message' => 'Error al eliminar los datos');
echo json_encode($respuesta);
}
} else {
// Enviar una respuesta JSON con error
$respuesta = array('status' => 'error',
'message' => 'No se recibió el ID');
echo json_encode($respuesta);
}
?>
Este código incluye
la eliminación de la persona de la base de datos y la eliminación de la foto de
la carpeta. Si la eliminación es exitosa, se envía una respuesta JSON con
status igual a 'success' y message con un mensaje de éxito que incluye el
nombre completo de la persona eliminada. Si la eliminación falla, se envía una
respuesta JSON con status igual a 'error' y message con un mensaje de error.
Asegúrate de reemplazar la cadena 'ruta/a/la/carpeta/' con la ruta adecuada a
la carpeta donde se guardan las fotos.
Comentarios
Publicar un comentario