Ciao!
Quello che posto sotto è un codice per una semplice lettura, inserimento, modifica ed elimiazione di un dato in una semplice tabella MySQL. (Tabella composta solo da due campi)
Un campo ID chiave primaria e un campo CAMPO contentente il dato.
Sono sicuro che un programmatore esperto rimarrà disgustato dal mio modo di programmare.
Vi chiedo di darmi alcuni consigli su come snellire questo mio modo di programmare.
Questo codice funziona perfettamente con PHP4 mentre riporta una serie infiniti di errori con PHP5. Non mi sono ancora dedicato a cercare di capire PHP5, ma se fosse possibile, vi chiedo di correggere il mio listato in modo che sia compatibile anche con la versione più aggiornata.
Riporto sotto il codice del mio file prova.php
Il file richiede l'inclusione di due files che non riporterò
prova_config.php -> con i miei dati per accedere al database in localhost
prova_funzioni -> un file dove definisco alcune funzioni di base molto semplici
prova.php :
codice:
<?php
include("prova_funzioni.php"); // archivio funzioni
include("prova_config.php"); // parametri di connessione al database
$link=@mysql_connect( $dbhost, $dbuser , $dbpass )or die("Errore di connessione al server SQL: username o password errati");
$dbw=mysql_select_db($dbname)or die("Errore di connessione al database");
?>
<html>
<head>
<title>Prova</title>
</head>
<body>
<?php
/* ************ inserimento ***************** */
if( isset ($_POST['ins']) )
{
$campo = $_POST['campo'];
if ( strlen($campo) > 0 AND substr($campo, 0, 1) != ' ')
{
$sql = "SELECT * FROM tabella ORDER BY campo ASC";
$rs = mysql_query($sql, $link) or die ("Errore recupero dati" . mysql_error());
$dati = array();
while ($rec = mysql_fetch_array($rs))
{
$dati[] = $rec;
}
$id = ultimo_id (tabella, id); // funzione presente nel file prova_funzioni.php che determina la prima chiave id disponibile
mysql_select_db("my_db", $link);
if (!mysql_query("INSERT INTO $dbname.`tabella` ( `id` , `campo`) VALUES ( \"$id\", \"$campo\" )") )
{
print("Attenzione, impossibile inserire il nuovo dato
");
}
else
{
/* print("inserito nuovo dato
"); */
}
}
else
{
echo"
campo errato o vuoto
";
}
}
/* ************ cancella ***************** */
if( isset ($_POST['del']) )
{
$id = $_POST['id'];
if (!mysql_query("DELETE FROM $dbname.`tabella` WHERE (`tabella`.`id` = \"$id\") "))
{
print("Attenzione, impossibile eliminare dato
");
}
else
{
/* print("[/b]eliminato dato
"); */
}
}
/* ************ modifica ***************** */
if( isset ($_POST['mod']) )
{
$id = $_POST['id'];
$campo = $_POST['campo'];
if ( strlen($campo) > 0 AND substr($campo, 0, 1) != ' ')
{
mysql_select_db("my_db", $link);
if (!mysql_query("UPDATE $dbname.`tabella` SET `campo` = \"$campo\" WHERE (`tabella`.`id` = \"$id\")") )
{
print("Attenzione, impossibile modificare campo
");
}
else
{
/* print("modificato campo
"); */
}
}
else
{
echo"
campo errato o vuoto
";
}
}
/* ************ inizio ***************** */
$sql = "SELECT * FROM tabella ORDER BY campo ASC";
$rs = mysql_query($sql, $link) or die ("Errore recupero dati" . mysql_error());
$dati = array();
while ($rec = mysql_fetch_array($rs))
{
$dati[] = $rec;
}
?>
<table border=1>
<tr>
<td>[b]campo</td>
</tr>
<?php
foreach ($dati as $d)
{
$id = $d['id'];
$campo = $d['campo'];
?>
<form method="post">
<tr>
<input type="hidden" name="id" value="<?php echo $id ?>" />
<td><input name="campo" value="<?php echo $campo; ?>"</td>
<td>
<input type="submit" name="mod" value="modifica">
<input type="submit" name="del" value="elimina">
</form></td>
</tr>
<?php
}
?>
<form method="post">
<tr>
<td><input type="text" name="campo"></td>
<td><input type="submit" name="ins" value="inserisci" /></form></td>
</tr>
</table>
</form>
</body>
</html>