inserimento e variazione di una tabella mysql

  • Creatore Discussione Creatore Discussione virg
  • Data di inizio Data di inizio
  • Tag Tag
    php

virg

Nuovo Utente
19 Ott 2012
18
0
0
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)

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&agrave;:
	    <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:
buona serata a tutti,
ho risolto il problema togliendo la function mostra_form
virg
 

Discussioni simili