ciao,
sto guardando php da un po di giorni , cerco di spiegare il problema che non riesco a risolvere:
ho creato un record su una tabella ipotetica clienti e fin qui tutto bene, ora voglio rileggere quel record che ha una certa chiave per variarlo:
il problema è che non riesco a far visualizzare i dati nella form utilizzando le function, mentre se non utilizzo le function tutto ok.
Vorrei capire dove e' che sbaglio utilizzando le function. Il prototipo di programma che vorrei produrre è che con lo stesso programma vorrei inserire
variare e/o annullare un record della tabella xy. Vi posto il programma che chiaramente non è completo ma se non risolvo questo fatto non posso proseguire.
Il programma ha questa logica:
a) presenta la form vuota per accettare il nome (chiave della tabella clienti)
b) premendo il tasto invio eseguito il controllo che il nome non sia spazio entra nella funzione leggi_record
c) se il record non esiste ripresenta la form con il nome digitato e si dovranno digitare gli altri campi :indirizzo ecc altrimenti (e qui non va)deve visualizzare tutti i campi memorizzati
d) premendo aggiorna inserisce nel db il record e (o varia se già presente non sviluppata)
Grazie per la collaborazione
sto guardando php da un po di giorni , cerco di spiegare il problema che non riesco a risolvere:
ho creato un record su una tabella ipotetica clienti e fin qui tutto bene, ora voglio rileggere quel record che ha una certa chiave per variarlo:
il problema è che non riesco a far visualizzare i dati nella form utilizzando le function, mentre se non utilizzo le function tutto ok.
Vorrei capire dove e' che sbaglio utilizzando le function. Il prototipo di programma che vorrei produrre è che con lo stesso programma vorrei inserire
variare e/o annullare un record della tabella xy. Vi posto il programma che chiaramente non è completo ma se non risolvo questo fatto non posso proseguire.
Il programma ha questa logica:
a) presenta la form vuota per accettare il nome (chiave della tabella clienti)
b) premendo il tasto invio eseguito il controllo che il nome non sia spazio entra nella funzione leggi_record
c) se il record non esiste ripresenta la form con il nome digitato e si dovranno digitare gli altri campi :indirizzo ecc altrimenti (e qui non va)deve visualizzare tutti i campi memorizzati
d) premendo aggiorna inserisce nel db il record e (o varia se già presente non sviluppata)
PHP:
<?php
if($_REQUEST['registra'] == 1)
{
leggi_record($resrow);
$messaggio=$resrow['5'];
$indirizzo=$resrow[1];
mostra_form();
} else {
mostra_form();
}
if($_REQUEST['registra'] == 2)
{
inserisci_record();
}
function leggi_record($resrow)
{
$myconn = mysql_connect('localhost', 'root', 'virgilio') or die('Errore...');
//Mi connetto al database dbphp
mysql_select_db('dbphp', $myconn) or die('Errore...');
$nome = trim($_POST['nome']);
$query = "SELECT nome,indirizzo,sesso,newletter,attivita,messaggio FROM clienti WHERE nome = '$nome'";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
$numrows = mysql_num_rows($result);
if ($numrows==0)
{
$resrow[6]=1;
}
else
global $resrow;
$resrow = mysql_fetch_row($result);
$nome=$resrow[0];
$indirizzo=$resrow[1];
$sesso=$resrow[2];
$newsletter=$resrow[3];
$attivita=$resrow[4];
$messaggio=$resrow[5];
$tipo=$resrow[6];
return $resrow;
}
function inserisci_record()
{
// richiamo il file di configurazione
// require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
// require 'connect.php';
$myconn = mysql_connect('localhost', 'root', 'virgilio') or die('Errore...');
//Mi connetto al database dbphp
mysql_select_db('dbphp', $myconn) or die('Errore...');
// recupero i campi di tipo "stringa"
$nome = trim($_POST['nome']);
$indirizzo = trim($_POST['indirizzo']);
$messaggio = trim($_POST['messaggio']);
// verifico se devo eliminare gli slash inseriti automaticamente da PHP
if(get_magic_quotes_gpc())
{
$nome = stripslashes($nome);
$indirizzo = stripslashes($indirizzo);
$messaggio = stripslashes($messaggio);
}
$nome = mysql_real_escape_string($nome);
$indirizzo = mysql_real_escape_string($indirizzo);
$messaggio = mysql_real_escape_string($messaggio);
// recupero gli altri campi del form
$sesso = isset($_POST['sesso']) ? intval($_POST['sesso']) : 0;
$newsletter = isset($_POST['newsletter']) ? 1 : 0;
$attivita = intval($_POST['attivita']);
// preparo la query
$query = "INSERT INTO clienti (nome,indirizzo,sesso,newletter,attivita,messaggio)
VALUES ('$nome','$indirizzo','$sesso','$newsletter ','$attivita','$messaggio')";
// invio la query
$sqlcode=0;
$result = mysql_query($query);
$sqlcode = mysql_errno();
if ($sqlcode !=0)
{
print ("<script>alert('errore aggiornamento');</script>");
}
if ($sqlcode !=0)
{
// controllo l'esito
if (!$result)
{
die("<br>Errore nella query $query: " . mysql_error() . mysql_errno());
}
}
// chiudo la connessione a MySQL
mysql_close();
print ("<script> alert('Inserimento effettuato con successo inserito $nome');</script>");
}
// -------------------------------------------------------------------------------
function mostra_form()
{
// mostro un eventuale messaggio
//if(isset($_GET['msg']))
// echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
//
?>
<form name="form_registrazione" id="form_registrazione" method="post" action="">
<label>nome:
<input name="nome" id="nome" type="text" value="<?php echo $_POST["nome"]?>" />
</label>
(obbligatorio)
<p>
<label>indirizzo:
<input name="indirizzo" id="indirizzo" type="text" value="<?php echo $indirizzo?>" />
</label>
(obbligatorio)
</p>
<p> sesso:
<label>
<input type="radio" name="sesso" value="1" />
M</label>
<label>
<input type="radio" name="sesso" value="2" />
F</label>
</p>
<p>
<label>inviami newletter:
<input name="newsletter" type="checkbox" value="1" />
</label>
</p>
<p>
<label>attività:
<select name="attivita">
<option value="0">:: seleziona ::</option>
<option value="1">studente</option>
<option value="2">lavoratore</option>
<option value="3">disoccupato</option>
</select>
</label>
</p>
<p>
<label>messaggio:<br />
<textarea name="messaggio" cols="40" rows="5"><?php echo $messaggio?></textarea>
</label>
</p>
<label>tipo:
<input name="tipo" id="tipo" type ="text" value="<?php echo $_POST["tipo"]?>" />
<p>
<input name="invia" type="submit" value="Invia" onclick="verifica_campi()" />
<input name="aggiorna" type="submit" value="aggiorna" onclick="verifica_campi2()" />
</p>
</form>
<?php
}
?>
<script>
function verifica_campi()
{
var nome = document.getElementById('nome').value;
var indirizzo = document.getElementById('indirizzo').value;
var controllo = "";
if(nome == "")
{
alert("Inserire il nome");
controllo = 1;
}
if(controllo == "")
{
document.getElementById('form_registrazione').target = '';
document.getElementById('form_registrazione').action = 'prog01.php?registra=1';
document.getElementById('form_registrazione').submit();
}
}
</script>
<script>
function verifica_campi2()
{
var nome = document.getElementById('nome').value;
var indirizzo = document.getElementById('indirizzo').value;
var controllo = "";
if(nome == "")
{
alert("Inserire il nome");
controllo = 1;
}
if(indirizzo == "")
{
alert("Inserire indirizzo");
controllo = 1;
}
if(controllo == "")
{
document.getElementById('form_registrazione').target = '';
document.getElementById('form_registrazione').action = 'prog01.php?registra=2';
document.getElementById('form_registrazione').submit();
}
}
</script>
Grazie per la collaborazione
Ultima modifica di un moderatore: