Menu

UPDATE & DELETE

In aceasta lectia vom continua aplicatia noastra inceputa in lectia precedenta si anume INSERT & SELECT

1. Update

Instructiunea UPDATE este folosita pentru a modifica datele de pe un rand sau chiar mai multe. Observati insa ca desi eu scriu instructiunile cu litere mari(UPDATE, INSERT) ele se pot scrie si cu litere mici(update, insert) dar este recomandat cu litere mari pentru a avea un cod mai lizibil. Instructiunea UPDATE are urmatoarea forma:
UPDATE `nume_tabel` SET `nume_coloana`='valoare'
Exemplul de mai sus modifica toate randurile din tabelul nume_tabel cu valoarea valoare in coloana nume_coloana.
Dar putem modifica mai multe coloane doar cu un singur query:
UPDATE `nume_tabel` SET `coloana1`='val1',`coloana2`='val2'
Exemplul de mai sus modifca toate randurile din tabelul nume_tabel cu valoarea val1 in coloana coloana1 si cu valoarea val2 in coloana2.
Banuiesc ca acum te intrebi cum sa facem sa modificam doar un rand de exemplu, sau doar randuri specifice. Pentru asta folosim WHERE, WHERE are urmatoarea sintaxa: WHERE `coloana1`='valoare1'. Priveste urmatorul exemplu:
UPDATE `nume_tabel` SET `coloana1`='valoare1' WHERE `coloana2`='valoare2'
Exemplul de mai sus modifica toate randurile care au in coloana coloana2 valoarea valoare2 cu valoare1 in coloana1.

Acum sa folosim UPDATE si in aplicatia noastra. Cod modifica.php:
<?php  
# fisier: /modifica.php

include('config.php');
$conn 	= new mysqli($host, $user, $parola, $db);
# Cu ajutorul (int) eliminam orice alte caractere inafara de numere din $_GET['id']
$id 	= (int)$_GET['id'];
$nume 	= htmlspecialchars((isset($_POST['nume'])) ? $_POST['nume'] : '', ENT_QUOTES);
$nume 	= $conn->real_escape_string($nume);
$email 	= htmlspecialchars((isset($_POST['email'])) ? $_POST['email'] : '', ENT_QUOTES);
$email 	= $conn->real_escape_string($email);
if($nume == null Or $email == null){
	# In caz ca formularul nu a fost completat sau nu a fost completat complet
	echo '<form method="post" action="?id='.$id.'">';
		echo '<input type="text" name="nume" placeholder="Introdu noul nume"/>';
		echo '<input type="text" name="email" placeholder="Introdu noul email"/>';
		echo '<input type="submit" value="Modifica contactul!"/>';
	echo '</form>';
} else{
	# Formularul a fost completat, procesam datele
	$sql 	= "UPDATE `agenda` SET `nume`='$nume',`email`='$email' WHERE `id`='$id'";
	if($conn->query($sql)){
		echo '<p style="color:green;">Contactul a fost modificat cu succes!</p>';
	} else{
		echo '<p style="color:red;">A aparut o eroare neasteptata!</p>';
	}
	echo '<br/> <a href="contacte.php">Vezi contactele</a>';
}
?>
Poti testa aplicatia creata pana acum in iframe-ul de mai jos: Pentru a modifica un contact apasa pe M-ul de la optiuni cand te aflii in pagina pentru vizualizarea contactelor.

2. Delete

Pana acum am invatat sa:
  • Adaugam date
  • Afisam date
  • Modificam date
acum este randul sa facem lista completa, sa stergem date.
Instructiunea DELETE este folosita pentru a sterge un rand sau mai multe(in functie de clauza WHERE sau LIMIT).(vezi aici documentatia oficiala)
Pentru a sterge toate randurile dintr-un tabel folosim sintaxa:
DELETE FROM nume_tabel;
Dar cum am mentionat in lectia INSERT & SELECT cand am discutat despre WHERE putem folosii WHERE pentru a sterge doar randurile care ne intereseaza:
DELETE FROM nume_tabel WHERE `limbaj_preferat` != 'PHP';
Putem folosii si LIMIT pentru a sterge doar un numar fix de randuri, in exemplul urmator vom sterge doar 5 randuri:
DELETE FROM nume_tabel LIMIT 0,5;


Iar acum sa implementam DELETE in aplicatia noastra.
Cod sterge.php:
<?php  
# fisier: /sterge.php

include('config.php'); // includem fisierul cu datele pentru mysql
$conn 	= new mysqli($host, $user, $parola, $db);
$id 	= (int)$_GET['id'];
if($id != null){
	$sql = "DELETE FROM `agenda` WHERE `id`='$id'";
	if($conn->query($sql)){
		echo '<p style="color:green;">Contact sters cu succes!</p>';
	}
}
?>
Dupa cum observi sa implementam DELETE a fost cel mai usor, dar asta se datoreaza si ca ai evoluat si nu mai este nevoie de comentarii pentru fiecare linie de cod.
Poti testa aplicatia noastra, de data aceasta in varianta finala in iframe-ul de mai jos: Pentru a sterge un contact apasa pe S-ul de la optiuni cand te aflii in pagina pentru vizualizarea contactelor.


Ti-a placut articolul? Asigura-te ca-ti dam de veste cand publicam altele noi.


Tags: Tutoriale, Programare Web, Php, Tutoriale Mysql, Curs Php

Comments Nota 0 din 0