Php

annuncio pubblicitario
Php e Mysql
In quest'articolo vedremo come il php interagisce con il database Mysql. Supponiamo di aver già creato in Mysql un database di nome 'db_names' e
una tabella di nome 'tab_names' in cui vogliamo memorizzare nome, cognome ed età di alcune persone. I campi della tabella li chiamiamo 'name' ,
'surname' ,'age'. Per creare un database e una tabella possiamo ad esempio servirci di PhpMyAdmin.
Ora andiamo a vedere le azioni principali che si possono compiere in un databse e cioè l' inserimento dati, la cancellazione dati e la lettura dei dati.
INSERIMENTO DATI
Per l'inserimento dei dati andiamo a creare una pagina di nome insert.php. Questa pagina conterrà innanzitutto il codice di connessione al database:
$host="my_host";
$user="my_user";
$password="my_password";
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="db_names";
mysql_select_db($db_name,$myconn);
mysql_connect serve a connettersi al database e prende come argomenti $host,$user e $password dove dovete salvare i parametri di connessione al
vostro database Mysql.
mysql_select_db seleziona invece il database con il quale volete operare e prende come argomenti il nome del database e il nome della connessione.
Ora andiamo a scrivere inserire il codice per inserire i dati del signor Tizio Caio nella tabella:
$query_sql="INSERT INTO tab_names VALUES('Tizio','Caio','30');";
$result=mysql_query($query_sql,$myconn);
Nella variabile $query_sql è stata memorizzata l'istruzione che inserisce i dati nel database mentre mysql_query esegue l'istruzione.
LETTURA DATI
Ora supponiamo di voler leggere i dati scritti nella tabella tab_names. Andremo perciò a costruirci la pagina read.php contenente il codice per
leggere la tabella.
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="db_names";
mysql_select_db($db_name,$myconn);
$query_read="SELECT * FROM tab_names";
$result=mysql_query($query_read,$myconn);
$row_number=mysql_num_rows($result);
for ($i=0;$i<$row_number;$i++)
{
$array_result=mysql_fetch_row($result);
$name=$array_result[0];
$surname=$array_result[1];
$age=$array_result[2];
echo $name."|".$surname."|".$age;
}
Andiamo a commentare il codice. Inizialmente ho la connessione al database, che abbiamo visto in precedenza, poi assegno a $query_read
l'istruzione sql per leggere tutti i record nel database.
I risultati della query li memorizzo nella variabile $result. Successivamente tramite l'istruzione mysql_num_rows si va a trovare quanti record sono
stati letti e il numero viene memorizzato nella variabile $row_number.
A questo punto, tramite un ciclo for, si va a leggere ogni record memorizzato in tabella e i singoli campi della tabella vengono memorizzati
nell'array $array_result.
Infine tramite l'istruzione echo, stampiamo il contenuto dei record nella tabella.
CANCELLAZIONE DATI
Analizziamo ora l'operazione riguardante la cancellazione dei dati dalla tabella.Andiamo a costruirci la pagina delete.php contenente le seguenti
istruzioni.
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="db_names";
mysql_select_db($db_name,$myconn);
$query_delete="DELETE * FROM tab_names WHERE name='Tizio'";
$result=mysql_query($query_delete,$myconn);
Come sempre ci connettiamo al database e assegniamo l'istruzione per la cancellazione del signor Tizio a $query_delete. L'istruzione mysq_qyery
provvede ad eseguire l'istruzione e a cancellare il signor Tizio dalla tabella tab_names.
RIEPILOGO
Riepilogo il l'intero codice delle tre pagine in php costruite per l'inserimento dati, la lettura dati e la ncellazione.
INSERT.PHP
$ host="my_host";
$user="my_user";
$password="my_password";
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="db_names";
mysql_select_db($db_name,$myconn);
$query_sql="INSERT INTO tab_names VALUES('Tizio','Caio','30');";
$result=mysql_query($query_sql,$myconn);
READ.PHP
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="db_names";
mysql_select_db($db_name,$myconn);
$query_read="SELECT * FROM tab_names";
$result=mysql_query($query_read,$myconn);
$row_number=mysql_num_rows($result);
for ($i=0;$i<$row_number;$i++)
{
$array_result=mysql_fetch_row($result);
$name=$array_result[0];
$surname=$array_result[1];
$age=$array_result[2];
echo $name."|".$surname."|".$age;
}
DELETE.PHP
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="db_names";
mysql_select_db($db_name,$myconn);
$query_delete="DELETE * FROM tab_names WHERE name='Tizio'";
$result=mysql_query($query_delete,$myconn);
DELETING RECORDS
The query form used to access this script would be similar to the one used for editing a record. A list of existing data would be
displayed and below it a form to choose a line for removal. The script is identical to the update form but calls the script
birthdays_delete_record.php.
birthdays_delete_form.php
<html><head><title>Birthdays Update Form</title>
</head>
<body>
<?
/* Change next two lines if using online */
$db="newdb";
$link = mysql_connect('localhost', '', '');
if (! $link)
die(mysql_error());
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());
$result = mysql_query( "SELECT * FROM birthdays" )
or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);
print "There are $num_rows records.<P>";
print "<table width=600 border=1>\n";
while ($get_info = mysql_fetch_row($result)){
print "<tr>\n";
foreach ($get_info as $field)
print "\t<td>$field</td>\n";
print "</tr>\n";
}
print "</table>\n";
mysql_close($link);
?>
<br>
<form method="POST" action="birthdays_delet_record.php">
<pre>
Enter Id Number to Edit: <input type="text" name="id" size="5">
<input type="submit" value="Submit"><input type="reset">
</pre>
</form>
</body>
</html>
birthdays_delete_record.php
<?
$id=$_POST['id'];
$db="newdb";
$link = mysql_connect("localhost", "root", "");
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());
mysql_query("DELETE FROM birthdays WHERE id=$id");
mysql_close($link);
?>
La cancellazione di record presenti in una tabella è un'operazione che richiede l'esecuzione di una semplice query. Ad esempio per
cancellare dalla tabella utenti il record con id pari a 5 basta lanciare la seguente query.
DELETE FROM utenti WHERE id = 5
Per eseguire questa cancellazione in PHP è sufficiente quindi il seguente script:
<?php
// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
// preparo la query
$query = "DELETE FROM utenti WHERE id = 5";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// chiudo la connessione a MySQL
mysql_close();
echo 'Query eseguita correttamente';
?>
Di solito però lo script che deve cancellare dei dati non sa a priori quale record eliminare. In un contesto interattivo è l'utente ad
indicare cosa cancellare, e lo fa cliccando su di un link o selezionando in altro modo i record da eliminare. Lo script quindi dovrebbe
occuparsi di mostrare i dati all'utente, permettergli di selezionare quelli da cancellare, ed infine effettuare l'operazione.
Vediamo quindi come realizzare uno script che mostra l'elenco dei record presenti nella tabella "utenti", associando a ciascuno di essi
un link e una checkbox attraverso cui selezionare quelli da eliminare. Lo script verrà suddiviso in due pari, la prima adibita alla
creazione dell'elenco di record disponibili, con relativi link e checkbox, la seconda per l'eliminazione del record identificato dall'id
passato via $_GET o via $_POST.
<?php
// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
if($_POST)
{
$ids = isset($_POST['id']) ? $_POST['id'] : array();
elimina_record($ids);
}
elseif(isset($_GET['id']))
{
elimina_record(array($_GET['id']));
}
else
mostra_lista();
function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
// preparo la query
$query = "SELECT id,nome FROM utenti";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo '
<form name="form1" method="post" action="">
<table border="1">
<tr>
<th> </th>
<th>Nome</th>
<th> </th>
</tr>';
while ($row = mysql_fetch_assoc($result))
{
$nome = htmlentities($row['nome']);
// preparo il link per la modifica dei dati del record
$link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
echo "<tr>
<td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
<td>$nome</td>
<td><a href=\"$link\">elimina</a></td>
</tr>";
}
echo '</table>
<br />
<input type="submit" name="Submit" value="Elimina record selezionati" />
</form>';
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
}
function elimina_record($ids)
{
// verifico che almeno un id sia stato selezionato
if(count($ids) < 1)
{
$messaggio = urlencode("Nessun record selezionato!");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// per precauzione converto gli ID in interi
$ids = array_map('intval',$ids);
// creo una lista di ID per la query
$ids = implode(',',$ids);
// preparo la query
$query = "DELETE FROM utenti WHERE id IN ($ids)";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// conto il numero di record cancellati
$num_record = mysql_affected_rows();
// chiudo la connessione a MySQL
mysql_close();
$messaggio = urlencode("Numero record cancellati: $num_record");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
?>
La funzione mostra_lista() si occupa di creare l'elenco dei record all'interno di un form. Per ciascuno di essi viene mostrato il nome, a
cui viene applicata la funzione htmlentities() per la conversione dei caratteri nelle relative entità HTML, il link per la cancellazione
diretta e la checkbox di selezione.
La funzione elimina_record() invece provvede alla cancellazione dei record selezionati. Gli id dei record vengono passati all'interno
dell'array $ids (riga 10,11,15). Questi vengono prima convertiti in numeri interi per precauzione (riga 83), trasformati in una stringa di id
separai da virgola (riga 86) ed infine inseriti nella query (riga 89).
Eseguita la query vengono contati i record effettivamente interessati da questa operazione attraverso la funzione
mysql_affected_rows() (riga 100) e viene effettuato un redirect all'URL corrente per evitare possibili problemi legati al refresh della
pagina, come visto nella Lezione 5. Anche in questo caso un messaggio viene accodato all'URL che verrà visualizzato all'inizio della
funzione mostra_lista().
Un punto debole dello script presentato risiede nel passaggio degli id dei record da cancellare attraverso un link ($_GET) o una
checkbox ($_POST), elementi comunque accessibili all'utente e pertanto soggetti a manomissione. Supponiamo ad esempio che un
utente abbia i permessi sufficienti per poter cancellare solo i record con id compreso tra 1 e 10. La funzione mostra_lista() deve quindi
mostrare solo questi record ma nulla vieta all'utente di manomettere un link per la cancellazione inserendo un id superiore a 10. Senza
nessun controllo quindi l'utente potrebbe eliminare record su cui non ha i permessi. Diverse le possibili soluzioni al problema. Prima di
effettuare la DELETE si potrebbe verificare che l'id passato sia tra quelli accessibili all'utente impiegando la stessa logica usata da
mostra_lista() per la loro individuazione. Se tale procedimento risulta oneroso mostra_lista() potrebbe salvare in sessione gli id dei
record accessibili all'utente. Contro la manomissione dei link esiste anche una particolare tecnica denominata HMAC implementata nel
package PEAR::Crypt_HMAC
Inserire e Cancellare un Record da un Database MySQL
Dopo aver visto come effettuare una ricerca all’interno di un database mysql, oggi vediamo nel dettaglio come inserire ed eliminare un
record da una determinata tabella. Per fare ciò andremo ad utilizzare alcune semplici pagine php e due form html, all’interno dei quali
inseriremo il nome da aggiungere ed eventualmente quello da cancellare. Per prima cosa andiamo a creare una pagina php o html in
cui inserire i form per l’eliminazione e l’inserimento di un nuovo record. A seguito il codice da inserire in una pagina php e
successivamente quello per una pagina html. Da ricordare che il form per l’inserimento dovrà agire su inserisci.php mentre quello
relativo all’eliminazione su elimina.php come nell’esempio.
echo" <form action=\"elimina.php\" method=\"post\">
<input type=\"text\" name=\"oggetto\" />
<input type=\"submit\" name=\"submit\" value=\"Elimina\" />
</form>";
<form action="elimina.php" method="post">
<input type="text" name="oggetto" />
<input type="submit" name="submit" value="Elimina" />
</form>
Dopo aver creato la pagina con i due form andremo a realizzare le due pagine in php, le quali ci permetteranno di inserire o rimuovere
un record dal nostro database. Quella relativa alla rimozione prenderà il nome “elimina.php” mentre l’altra si andrà a chiamare
“inserisci.php”.
<?php
include_once("config.php");
$oggetto = $_POST['oggetto'];
mysql_query("DELETE FROM Tabella WHERE record=".$oggetto);
?>
Il codice per l’inserimento è molto base e fa riferimento ad una banale tabella con un solo parametro, in questo caso chiamato
oggetto. Per inserire record con più parametri è sufficiente creare più form ed elencare nel codice sottostante tutte le variabili
aggiuntive, ovviamente separando i loro nomi con una virgola.
<?php
include_once("config.php");
$sql="INSERT INTO Tab (oggetto) VALUES ('$_POST[oggetto]')";
//esempio con più parametri
$sql="INSERT INTO Tab (oggetto,oggetto2,oggetto3) VALUES ('$_POST[oggetto]','$_POST[oggetto2]','$_POST[oggetto3]' )";
$result = mysql_query($sql) or die ("ERRORE");
?php>
Delete records from MySQL database is an easily SQL command. You need to put the key value just as id, name or others into this
command. This tutorial use the file select.php from Update Record tutorial and make a new file delete.php.
Syntax :
delete from table_name where column_name='value'
This tutorail need 2 files.
1. select.php from Update Record tutorial.
2. delete.php
• select.php
In this file, you have to put some codes for a new link. This link will send GET method parameter to delete.php.
select.php
<?
// Connect database
include("connectdb.php");
// Get all records in all columns from table and put it in $result.
$result=mysql_query("select * from phonebook");
/*Split records in $result by table rows and put them in $row.
Make it looping by while statement. */
while($row=mysql_fetch_assoc($result)){
// Output
echo "ID : $row['id'] <br/>";
echo "Name : $row['name'] <br/>";
echo "Email : $row['email'] <br/>";
echo "Tel : $row['tel'] <hr>";
// Add a link with a parameter(id) and it's value. This for update record at update.php
echo '<a href="update.php?id='.$row['id'].'">Update</a>';
// Add a link with a parameter(id) and it's value. This for delete record at delete.php
echo '<a href="delete.php?id='.$row['id'].'">Delete</a>';
}
mysql_close();
?>
Browse "select.php" by go to http://localhost/select.php.
Result : (Links below are NOT real on this page)
ID : 1
Name : Jack
Email : [email protected]
Tel : 12345678
Update
Delete <- when you mouse over this. It will show "http://localhost/delete.php?id=1"in your browser's status bar.
ID : 2
Name : Joe
Email : [email protected]
Tel : 87654321
Update
Delete <- when you mouse over this. It will show "http://localhost/delete.php?id=2" in your browser's status bar.
...
The values are the same as ID parameters. When you click on these links, the page will change to delete.php.
• delete.php
This file will get parameter($id) from select.php and delete the record where id column equal in $id .
insert.php
<?
// Connect database.
include("connectdb.php");
// Get values from form.
$id=$_GET['id'];
// Do delete statement.
mysql_query("delete from phonebook where id='$id'");
// Close database connection
mysql_close();
// Redirect to select.php.
header("location:select.php");
?>
Test
Browse select.php on your web browser as http://localhost/select.php and click on "Delete" link. This page will go to delete.php with id
record and delete.php will delete this record and re-direct back to select.php immediately.
LEZIONE 12: MYSQL
In questa lezione conclusiva vedremo insieme come è possibile far interagire le
nostre pagine .php con i database MySql.
Per dovere di completezza non possiamo non ricordare che PHP è in grado di
connettersi a diversi database server (MySql, MS Access, PostgreSql, Oracle,
Microsoft Sql Server, Sybase,...) tuttavia noi ci limiteremo a vedere l'interazione
con MySql che è senza dubbio la soluzione più comune e diffusa.
MySql è un database veloce e potentissimo in grado di gestire applicazioni con un
elvato grado di criticità e, cosa non secondaria, è un software open source,
liberamente scaricabile dal sito www.mysql.com.
Come abbiamo accennato nella lezione precedente PHP mette a disposizione
dello sviluppatore diverse funzioni per interagire con i db MySql. Vediamo insieme
le più importanti.
Per prima cosa vediamo come fa PHP a connetersi al MySql Server.
Allo scopo soccorre la funzione mysql_connect() che si utilizza con la seguente
sintassi:
mysql_connect(server, utente, password);
Ad esempio:
$myconn = mysql_connect('localhost', 'pippo', 'xxxxxx') or die("Errore...);
Una volta stabilita la connessione è necessario selezionare uno specifico db sul
quale lavorare. A questo scopo PHP ci fornisce la funzione mysql_select_db() da
utilizzarsi con la seguente sintasi:
mysql_select_db(database, connessione);
Ad esempio:
mysql_select_db('mio_database', $myconn) or die("Errore...");
Per prima cosa vediamo come è possibile recuperare dei dati presenti nel nostro
database.
Per fare questo dobbiamo formulare ed eseguire una query, la quale consiste in
una interrogazione che lo sviluppatore rivolge al database. Per fare ciò si fa
ricorso alla funzione mysql_query() con la seguente sintassi:
mysql_query(query, connessione);
Ad esempio:
$query = "SELECT * FROM tabella";
$result = mysql_query($query, $myconn) or die("Errore...");
Facciamo ora un esempio completo.
Poniamo di voler recuperare dalla tabella "amici" una serie di dati (nome,
cognome e telefono) e di volerli stampare a video per ogni occorrenza trovata nel
nostro database.
Ecco il codice completo opportunamente commentato:
<?
//Mi connetto al MySql Server
$myconn = mysql_connect('localhost', 'pippo', 'xxxxxx') or die("Errore...);
//Mi connetto al database degli amici
mysql_select_db('database_degli_amici', $myconn) or die("Errore...");
//Imposto ed eseguo la query
$query = "SELECT nome, cognome, telefono FROM amici";
$result = mysql_query($query, $myconn) or die("Errore...");
//conto il numero di occorrenze trovate nel db
$numrows = mysql_num_rows($result);
//se il database è vuoto lo stampo a video
if ($numrows==0){
echo "Database vuoto!";
}
//Se invece trovo delle occorrenze...
else
{
//Avvio un ciclo for che si ripete per il numero di occorrenze trovate
for($x=0; $x<$numrows; $x++){
//Recupero il contenuto di ogni record rovato
$resrow = mysql_fetch_row($result);
$nome = $resrow[0];
$cofgnome = $resrow[1];
$telefono = $resrow[2];
//Stampo il risultato
echo "nome: <b>" . $nome . "</b><br/>";
echo "cognome: <b>" . $cognome . "</b><br/>";
echo "telefono: <b>" . $telefono . "</b>";
}
}
?>
Quello che abbiamo fatto qui sopra dovrebbe eservi abbastanza chiaro (ricordate
la lezione sui cicli?)...
Resta pertanto da chiarire solo il significato di due funzioni specifiche che
abbiamo utilizzato:
mysql_num_rows()
Serve per conteggiare il numero di records trovati all'interno del nostro db
sulla base di una data query;
mysql_fetch_row()
Recupera il contenuto dei records trovati. Più precisamente restituisce una
array contenente i valori di ogni campo riscontrato nel recordset.
Cenni di SQL: INSERT INTO, UPDATE e DELETE
Per finire vediamo brevemente come eseguire altre importanti operazioni con i
database attraverso i più comuni comandi del linguaggio SQL.
Con INSERT INTO si inseriscono nuovi dati nel db, con UPDATE si aggiornano dei
dati già presenti, con DELETE si cancellano dei dati.
Dal punto di vista di PHP queste operazioni non differiscono tra loro, l'unica cosa
che cambia è la query che viene eseguita, ma questo discorso attine al linguaggio
SQL.
Facciamo degli esempi:
Per INSERT INTO useremo:
$query = "INSERT INTO tabella VALUES('valore1','valore2','valore3')";
Per UPDATE useremo:
$query = "UPDATE tabella SET campo1='valore1', campo2='valore2',
campo3='valore3' WHERE id = 1";
Per DELETE useremo:
$query = "DELETE FROM tabella WHERE id = 1";
Attenzione!
Se nelle query di UPDATE e DELETE non usiamo la clausola "WHERE" verranno
aggiornati/eliminati tutti i record del db!
Facciamo un esempio di utilizzo di queste query; vediamo come cancellare con
PHP un record dal nostro database MySQL:
<?
//Mi connetto al MySql Server
$myconn = mysql_connect('localhost', 'pippo', 'xxxxxx') or die("Errore...);
//Mi connetto al database degli amici
mysql_select_db('database', $myconn) or die("Errore...");
//Imposto ed eseguo la query
$query = "DELETE FROM tabella WHERE id = 1";
$result = mysql_query($query, $myconn) or die("Errore...");
?>
Per le altre operazioni basterà sostituire la query mantenendo inalterata la
struttura del PHP.
Delete Multiple Rows Record Using Checkbox
php_access_checkbox1.php
1. <html>
2. <head>
3. <title>ShotDev.Com Tutorial</title>
4. </head>
5. <body>
6. <script language="JavaScript">
7. function onDelete()
8. {
9. if(confirm('Do you want to delete ?')==true)
10. {
11. return true;
12. }
13. else
14. {
15. return false;
16. }
17. }
18. </script>
19. <form name="frmMain" action="php_access_checkbox2.php" method="post" OnSubmit="return onDelete();">
20. <?
21. $objConnect = odbc_connect("mydatabase","","");
22. $strSQL = "SELECT * FROM customer";
23. $objExec = odbc_exec($objConnect, $strSQL) or die ("Error Execute [".$strSQL."]");
24. ?>
25. <table width="600" border="1">
26. <tr>
27. <th width="91"> <div align="center">CustomerID </div></th>
28. <th width="98"> <div align="center">Name </div></th>
29. <th width="198"> <div align="center">Email </div></th>
30. <th width="97"> <div align="center">CountryCode </div></th>
31. <th width="59"> <div align="center">Budget </div></th>
32. <th width="71"> <div align="center">Used </div></th>
33. <th width="30"> <div align="center">Delete </div></th>
34. </tr>
35. <?
36. while($objResult = odbc_fetch_array($objExec))
37. {
38. ?>
39. <tr>
40. <td><div align="center"><?=$objResult["CustomerID"];?></div></td>
41. <td><?=$objResult["Name"];?></td>
42. <td><?=$objResult["Email"];?></td>
43. <td><div align="center"><?=$objResult["CountryCode"];?></div></td>
44. <td align="right"><?=$objResult["Budget"];?></td>
45. <td align="right"><?=$objResult["Used"];?></td>
46. <td align="center"><input type="checkbox" name="chkDel[]" value="<?=$objResult["CustomerID"];?>"></td>
47. </tr>
48. <?
49. }
50. ?>
51. </table>
52. <?
53. odbc_close($objConnect);
54. ?>
55. <input type="submit" name="btnDelete" value="Delete">
56. </form>
57. </body>
58. </html>
php_access_checkbox2.php
view plaincopy to clipboardprint?
1. <html>
2. <head>
3. <title>ShotDev.Com Tutorial</title>
4. </head>
5. <body>
6. <?
7. $objConnect = odbc_connect("mydatabase","","");
8.
9. for($i=0;$i<count($_POST["chkDel"]);$i++)
10. {
11. if($_POST["chkDel"][$i] != "")
12. {
13. $strSQL = "DELETE FROM customer ";
14. $strSQL .="WHERE CustomerID = '".$_POST["chkDel"][$i]."' ";
15. $objQuery = odbc_exec($objConnect, $strSQL);
16. }
17. }
18.
19. echo "Record Deleted.";
20. odbc_close($objConnect);
21. ?>
22. </body>
23. </html>
Create a php file and save to path root-path/myphp/
Run
http://localhost/myphp/php_access_delete1.php
Screenshot
.
.
Example 2 (Check All Button)
php_access_checkbox3.php
view plaincopy to clipboardprint?
1. <html>
2. <head>
3. <title>ShotDev.Com Tutorial</title>
4. </head>
5. <body>
6. <script language="JavaScript">
7. function ClickCheckAll(vol)
8. {
9.
10. var i=1;
11. for(i=1;i<=document.frmMain.hdnCount.value;i++)
12. {
13. if(vol.checked == true)
14. {
15. eval("document.frmMain.chkDel"+i+".checked=true");
16. }
17. else
18. {
19. eval("document.frmMain.chkDel"+i+".checked=false");
20. }
21. }
22. }
23.
24. function onDelete()
25. {
26. if(confirm('Do you want to delete ?')==true)
27. {
28. return true;
29. }
30. else
31. {
32. return false;
33. }
34. }
35. </script>
36. <form name="frmMain" action="php_access_checkbox2.php" method="post" OnSubmit="return onDelete();">
37. <?
38. $objConnect = odbc_connect("mydatabase","","");
39. $strSQL = "SELECT * FROM customer";
40. $objExec = odbc_exec($objConnect, $strSQL) or die ("Error Execute [".$strSQL."]");
41. ?>
42. <table width="600" border="1">
43. <tr>
44. <th width="91"> <div align="center">CustomerID </div></th>
45. <th width="98"> <div align="center">Name </div></th>
46. <th width="198"> <div align="center">Email </div></th>
47. <th width="97"> <div align="center">CountryCode </div></th>
48. <th width="59"> <div align="center">Budget </div></th>
49. <th width="71"> <div align="center">Used </div></th>
50. <th width="30"> <div align="center">
51. <input name="CheckAll" type="checkbox" id="CheckAll" value="Y" onClick="ClickCheckAll(this);">
52. </div></th>
53. </tr>
54. <?
55. $i = 0;
56. while($objResult = odbc_fetch_array($objExec))
57. {
58. $i++;
59. ?>
60. <tr>
61. <td><div align="center"><?=$objResult["CustomerID"];?></div></td>
62. <td><?=$objResult["Name"];?></td>
63. <td><?=$objResult["Email"];?></td>
64. <td><div align="center"><?=$objResult["CountryCode"];?></div></td>
65. <td align="right"><?=$objResult["Budget"];?></td>
66. <td align="right"><?=$objResult["Used"];?></td>
67. <td align="center"><input type="checkbox" name="chkDel[]" id="chkDel<?=$i;?>" value="<?=$objResult["CustomerID"];?>"></td>
68. </tr>
69. <?
70. }
71. ?>
72. </table>
73. <?
74. odbc_close($objConnect);
75. ?>
76. <input type="submit" name="btnDelete" value="Delete">
77. <input type="hidden" name="hdnCount" value="<?=$i;?>">
78. </form>
79. </body>
80. </html>
Create a php file and save to path root-path/myphp/
Run
http://localhost/myphp/php_access_delete3.php
Screenshot
.
.
.
Scarica