[PHP] Gestire il database MySQL da PHP parte 2

Phpmysql1

[PHP] Gestire il database MySQL da PHP parte 2

1

Nel precedente articolo, abbiamo visto come creare un database MySQL con PHP, connetterci ad esso, come creare una tabella, e come inserire un dato. In questa seconda parte invece vedremo come recuperare i campi dal database.

Selezionare un dato dal database MySQL con PHP

Una volta inserito un dato in un database (es: una registrazione) vorremmo essere capaci anche di riestrarlo all’ occorrenza (es: un login).

Per fare ciò, dopo esserci connessi al database, utilizziamo il comando SELECT per selezionare una colonna (usando asterisco le prendiamo tutte) assieme a FROM che specifica invece il nome della tabella da cui selezionare i dati.

SELECT username, password FROM users

Parlando “php-ese” questo si traduce:

<?php 
$mysqli = mysqli_connect("localhost","username","password","database");
// Controllo connessione:
if (mysqli_connect_errno())
  {
  die("Impossibile connettersi a MySQL: " . mysqli_connect_error());
  }

$result = mysqli_query($con,"SELECT username, email FROM users");
//Stampiamo il risultato:
while($row = mysqli_fetch_array($result))
  {
  echo $row['username'] . " " . $row['email'];
  echo "<br />";
  }
//Chiudiamo la connessione:
mysqli_close($con);
?->

In questo modo, selezioniamo tutti i dati dalla tabella e li stampiamo uno per volta.

Selezionare un sottoinsieme di entries dalla tabella MySQL con PHP

Spesso però, quello che succede (ad esempio con un sistema di Login) è che vogliamo selezionare solo una “riga” (entry) dalla tabella, riga che deve rispettare determinate caratteristiche “note”.
Ad esempio, continunando a parlare di un sistema di login, per verificare che l’utente sia effettivamente registrato al nostro sito (ovvero: è presente una riga con “username” e “password” selezionati dall’ utente) dovremo cercare nella tabella tutte le righe (che al momento della registrazione degli utenti dobbiamo fare in modo che siano uniche) dove il campo username è uguale allo username inserito dall’ utente, e la password del campo password sia quella inserita dall’ utente.
Per fare ciò, usiamo WHERE unito al SELECT.

SELECT username, password FROM users WHERE username ='username' AND password = 'password'

Parlando “php-ese” questo si traduce:

<?php
	$username = $_GET['username'];
	$password = $_GET['password'];
	$mysqli = mysqli_connect("localhost","username","password","database");
	// Controllo connessione:
	if (mysqli_connect_errno())
	{
		die("Impossibile connettersi a MySQL: " . mysqli_connect_error());
	}

	$result = mysqli_query($con,"SELECT username, password FROM users WHERE username ='". $username ."' AND password = '". password ."'");
	if(mysqli_num_rows($result) > 0)
	{
		echo("Bentornato $username!");
	}
	else
	{
		echo("Login errato.");
	}
?>

Logo-mysql

Aggiornare una entry nel database MySQL da PHP

Rimanendo nell’ argomento del sistema di login potremmo voler offrire la possibilità ai nostri utenti di modificare la propria password, o il proprio username.

Per fare ciò, dovremo prendere tutti i dati dell’utente, salvarli, modificarli, e rinserirli nel database. Fortunatamente MySQL ha la funziona UPDATE che ci permette di evitare tutto ciò:

UPDATE username SET username='Fede', password = "password2" WHERE email = '[email protected]'UPDATE username SET username='Fede', password = 'password2' WHERE email = '[email protected]'

Per eseguire la query, la sintassi è sempre la solita:

<?php
	$username = $_GET['username'];
	$password = $_GET['password'];
	$mysqli = mysqli_connect("localhost","username","password","database");
	// Controllo connessione:
	if (mysqli_connect_errno())
	{
		die("Impossibile connettersi a MySQL: " . mysqli_connect_error());
	}

	$result = mysqli_query($con,"UPDATE username SET username='Fede', password = "password2" WHERE email = '[email protected]'UPDATE username SET username='Fede', password = 'password2' WHERE email = '[email protected]'");
	if($result)
	{
		echo("Username e password aggiornate.");
	}
	else
	{
		echo("Qualcosa è andato storto.");
	}
?>

Logo-mysql

Come cancellare un dato dal database MySQL con PHP

Continuiamo a parlare del sistema di login. L’ ultima cosa che ci manca, è dare la possibilità all’ utente di cancellarsi dal nostro sito. Spesso non è una pratica usata (quand’è stata l’ultima volta che vi siete cancellati da un sito?) ma volendo possiamo offrirla.
Un’altro caso potrebbe essere quello in cui vogliamo “ricominciare da zero” nel collezionare dati, oppure nel caso in cui riconosciamo che un utente sia stato creato a scopo di Spam.

Nonostante tutti i motivi che potremmo avere per cancellare un dato dal database, MySQL utilizza il comando:

DELETE FROM users WHERE username ='Fede'

Usato con PHP:

<?php
	$username = $_GET['username'];
	$password = $_GET['password'];
	$mysqli = mysqli_connect("localhost","username","password","database");
	// Controllo connessione:
	if (mysqli_connect_errno())
	{
		die("Impossibile connettersi a MySQL: " . mysqli_connect_error());
	}

	$result = mysqli_query($con,"DELETE FROM users WHERE username ='Fede'");
	if($result)
	{
		echo("Username eliminato.");
	}
	else
	{
		echo("Qualcosa è andato storto.");
	}
?>

Potete attivamente vedere il risultato dei vostri script consultando di volta in volta la tabella nel Database tramite linea di comando di MySQL o il più agile PHPMyAdmin.

About the Author

Federico PonziStudente, Webmaster ed appassionato di tutto ciò che è informatico con una spruzzata di scienza.View all posts by Federico Ponzi

  1. Salvatore
    Salvatore10-14-2016

    Grazie alle tue indicazioni sono finalmente riuscito a connettermi al mio database
    ciao
    Salvatore

Leave a Reply