Sto cercando di attivare una immissione dati via form di una database creato con mysql, ma siccome l'impresa è al di sopra delle mie forze mi affido all'aiuto dei volenterosi del forum.
Ho installato easy php 2.01b (PHP 5.2.0, PhpMyAdmin 2.9.1.1, SQLite 1.2.0, MySQL 5.0.27) con il server Apache e Mysql che "girano" - com'è noto - in locale sulla mia macchina. Ho creato un database di prova con l'interfaccia PhpMyAdmin che ho iniziato a popolare sempre grazie alla interfaccia con la funzione "inserisci".
Poi mi sono cimentato nella scrittura del codicePHP per mostrare il contenuto dei campi della tabella (database: "danx", tabella "anagrafica", campi Nome, Cognome, Telefono).
Ecco la struttura come da Mysql:
Server: localhost - Database: danx
anagrafica
Commenti sulla tabella: Prova strutturata x input
Campo Tipo Null Predefinito Commenti
Nome varchar(20) No
Cognome varchar(20) No
Telefono varchar(15) No
ecco l'output della funzione "esporta" della tabella popolata
-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 16 Giu, 2008 at 02:05 PM
-- Versione MySQL: 5.0.27
-- Versione PHP: 5.2.0
--
-- Database: `danx`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `anagrafica`
--
DROP TABLE IF EXISTS `anagrafica`;
CREATE TABLE `anagrafica` (
`Nome` varchar(20) NOT NULL default '',
`Cognome` varchar(20) NOT NULL default '',
`Telefono` varchar(15) NOT NULL default '',
KEY `Cognome` (`Cognome`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Prova strutturata x input';
--
-- Dump dei dati per la tabella `anagrafica`
--
INSERT INTO `anagrafica` (`Nome`, `Cognome`, `Telefono`) VALUES
('Gino', 'Bartali', '00000000001'),
('Fausto', 'Coppi', '00000000002'),
('Eddie', 'Mercz', '00000000003');
Sono riuscito, (soffrendo molto e studiando in maniera assolutamente da neofita le guide ufficiali - e non - di PHP e MYSQL) a creare uno script php per la visualizzazione dei dati contenuti nella tabella (files collocati nella subdirectory "www" di EasyPHP).
ecco il codice del file "index.php" (a proposito nella documentazione di Easyphp non è data l'informazione della necessità, per il caricamento della pagina in locale, che il file DEBBA essere nominato così, appunto "index", ma tant'è ...) :
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>anagrafica2</title>
</head>
<body>
<br>
<?php
$connessione = mysql_connect("localhost","root","")or die("Connessione non riuscita: " . mysql_error());
print ("Connesso con successo");
mysql_select_db("danx", $connessione) or die("Errore nella selezione del database");
$query = mysql_query("SELECT * FROM `anagrafica` WHERE 1 LIMIT 0, 30; ",$connessione);
echo "<br>";
if ($query==FALSE) die("errore nella composizione della query". mysql_error());
mysql_close($connessione);
while($row=mysql_fetch_array($query)){
echo "nome: ".$row[Nome];
echo " cognome: ".$row[Cognome];
echo " telefono: ".$row[Telefono];
echo "<br>";
}
?>
<br>
</body>
</html>
eccone l'output:
Connesso con successo
nome: Gino cognome: Bartali telefono: 00000000001
nome: Fausto cognome: Coppi telefono: 00000000002
nome: Eddie cognome: Mercz telefono: 00000000003
adesso le dolenti note. Volevo creare una maschera di input per caricare gli array (giusto?) con i valori assegnati alle variabili da collegare ai contenuti dei campi della tabella del database. Ecco il tentativo (file : "immissione.html")
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Immissione dati</title>
</head>
<body>
<center>
<form action="report.php" name="Invio dati" target="_parent" enctype="application/x-www-form-urlencoded" method="post">
<p>Immissione Dati </p>
<p>NOME</p>
<input maxlength="20" name="Nome"><br>
<br>
COGNOME<br>
<br>
<input maxlength="20" name="Cognome"><br>
<br>
TELEFONO<br>
<br>
<input maxlength="15" name="Telefono"><br>
<br>
<p align="center"><input value="Inserisci" name="B1" type="submit"></p>
</form>
</center>
<br /><div style="z-index:3" class="smallfont" align="center">LinkBacks Enabled by <a rel="nofollow" href="http://www.crawlability.com/vbseo/">vBSEO</a> 3.0.0</div></body>
</html>
essendo un file html non ho errori ... ma la form potrebbe anche aver incamerato le variabili ...
ecco però poi di seguito il contenuto dello script (file?) php che ho nominato "report.php", e che avrebbe dovuto, nelle mie intenzioni (e copiando codice da lezioni esemplari sul web), assumere i valori delle variabili negli arrays (dico giusto?) e mostrarne i contenuti dei campi
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>anagrafica2</title>
</head>
<body>
<br>
<?php
$descrizione = $_POST['Nome'];
$descrizione2 = $_POST['Cognome'];
$descrizione3 = $_POST['Telefono'];
$connessione = mysql_connect("localhost","root","")or die("Connessione non riuscita: " . mysql_error());
print ("Connesso con successo");
mysql_select_db("danx", $connessione) or die("Errore nella selezione del database");
$query=("Insert into 'anagrafica' ('Nome' ) VALUES ( NULL , '$descrizione');";
$query1=("Insert into 'anagrafica' ('Cognome') VALUES ( NULL , '$descrizione2');";
$query2=("Insert into 'anagrafica' ('Telefono') VALUES ( NULL , '$descrizione3');";
if ($query==FALSE) die("errore nella composizione della query". mysql_error());
$result=mysql_query($query,$connessione);
if ($result==FALSE) die("Errore inserimento articolo");
echo "Articolo inserito con successo: ".$descrizione;
// mostra la tabella
$query = mysql_query("SELECT * FROM `anagrafica` WHERE 1 LIMIT 0, 30; ",$connessione);
echo "<br>";
if ($query==FALSE) die("errore nella composizione della query". mysql_error());
while($row=mysql_fetch_array($query)){
echo "nome: ".$row[Nome];
echo " cognome: ".$row[Cognome];
echo " telefono: ".$row[Telefono];
echo "<br>";
}
mysql_close($connessione);
?>
<br>
</body>
</html>
l'output (errato) è il seguente
"; if ($query==FALSE) die("errore nella composizione della query". mysql_error()); mysql_close($connessione); while($row=mysql_fetch_array($query)){ echo "nome: ".$row[Nome]; echo " cognome: ".$row[Cognome]; echo " telefono: ".$row[Telefono]; echo "
"; } mysql_close($connessione); ?>
Comunque, interrogando la tabella da Mysql, questa non risulta aggiornata
Post prolisso, mi rendo conto, ma sto cercando di capire. Grazie in anticipo per i suggerimenti e la pazienza.
Sand