Controllo su campo prima di inserire

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ciao ragazzi,
come sempre la sera mi vengono le idee più strane che però mi piacciono perché mi fanno migliorare anche se sono banali.

Ho creato un codice di inserimento dei dipendenti mediante script php con inserimento in un database sql.

Voglio inserire i dipendenti in modo che se il nome termina con la lettera "a" e il radio button è settato su "F" e viceversa per i maschietti quindi "o" come finale e radio button settato su "M" procede per l'inserimento diversamente no.

Sorge il problema. Se l'utente si chiama "MATTIA" come mio nipote che è maschietto ma il nome esiste sia al maschile e sia al femminile, il controllo precedente sballa e quindi ho incluso nel controllo (come eccezioni) i due nomi che mi venivano in mente che sia al maschile che al femminile rimangono invariati: MATTIA e ANDREA.
Ho implementato un controllo molto brutto ma funzionale:
Codice:
//controllo sul sesso - viene controllata l'ultima lettera del nome, se è "a" e il sesso è "F" oppure se è "o" e il sesso è "M" inserisce
	$ultima_nome = substr($_POST['nome'], -1); //substr($variabile, -1); = restituisce ultima lettera di $variabile
	if ((($ultima_nome == 'o') && ($_POST['sesso'] == 'M')) || (($ultima_nome == 'a') && ($_POST['sesso'] == 'F')) || (($_POST['nome'] == 'mattia') && ($_POST['sesso'] == 'M')) || (($_POST['nome'] == 'Mattia') && ($_POST['sesso'] == 'M')) || (($_POST['nome'] == 'andrea') && ($_POST['sesso'] == 'M')) || (($_POST['nome'] == 'Andrea') && ($_POST['sesso'] == 'M')))
		
	$query = "INSERT INTO dipendenti (nome, cognome, sesso, telefono, mansione) VALUES ('{$_POST['nome']}','{$_POST['cognome']}','{$_POST['sesso']}','{$_POST['telefono']}','{$_POST['mansione']}')";

lo so che è una cosa troppo statica ma sarà l'orario sarà che ho un casino in testa non ho trovato altre soluzioni.

Vi posto comunque il codice intero e funzionante in modo da farvi capire meglio se sono stato poco comprensibile e se serve a qualcuno almeno ne può usufruire:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title> Inserimento dati </title>
</head>

<font color="#FF0000" size = 5> Pagina dedicata all'inserimento di un nuovo utente </font>


<h2> Inserimento dati tabella dipendenti </h2>


	<FORM METHOD="post" ACTION="insert.php">
	<b>Nome:</b><br> <INPUT TYPE="text" NAME="nome" value="Inserisci un termine" onfocus="if(this.value==this.defaultValue)this.value=''"><br>
	<b>Cognome:</b><br> <INPUT TYPE="text" NAME="cognome" value="Inserisci un termine" onfocus="if(this.value==this.defaultValue)this.value=''"><br><br>
	
//Radio button = scelta obbligata - in modo che l'utente non sbagli nell'inserimento dei dati
	Uomo: <INPUT TYPE="radio" NAME="sesso" value="M"/>
	Donna: <INPUT TYPE="radio" NAME="sesso" value="F"/><br><br>

	<b>Telefono:</b><br> <INPUT TYPE="text" NAME="telefono" value="Inserisci un termine" onfocus="if(this.value==this.defaultValue)this.value=''"><br>
	<b>Mansione:</b><br> <INPUT TYPE="text" NAME="mansione" value="Inserisci un termine" onfocus="if(this.value==this.defaultValue)this.value=''"><br>
	<INPUT TYPE="submit" VALUE="Inserisci">
	</FORM>	
	
	
<!TARGET="_blank" se lo si aggiunge nel form dopo action apre un'altra pagina dove mostra quello che c'è in action>


<?php
	
	$connessione = mysql_connect("localhost","root","root") or die ("ATTENZIONE: Errore di connessione al database\n");
	$selezione_db = mysql_select_db("ProgDataWarehouse",$connessione) or die ("ATTENZIONE: Errore nella selezione del database\n");

//controllo sul sesso - viene controllata l'ultima lettera del nome, se è "a" e il sesso è "F" oppure se è "o" e il sesso è "M" inserisce
	$ultima_nome = substr($_POST['nome'], -1); //substr($variabile, -1); = restituisce ultima lettera di $variabile
	if ((($ultima_nome == 'o') && ($_POST['sesso'] == 'M')) || (($ultima_nome == 'a') && ($_POST['sesso'] == 'F')) || (($_POST['nome'] == 'mattia') && ($_POST['sesso'] == 'M')) || (($_POST['nome'] == 'Mattia') && ($_POST['sesso'] == 'M')) || (($_POST['nome'] == 'andrea') && ($_POST['sesso'] == 'M')) || (($_POST['nome'] == 'Andrea') && ($_POST['sesso'] == 'M')))
		
	$query = "INSERT INTO dipendenti (nome, cognome, sesso, telefono, mansione) VALUES ('{$_POST['nome']}','{$_POST['cognome']}','{$_POST['sesso']}','{$_POST['telefono']}','{$_POST['mansione']}')";
	

	if (mysql_query ($query, $connessione))
		echo ("Inserimento riuscito!");
	else
		echo ("Errore nell'inserimento :-(");	

?>

<body>
</body>
</html>

Come potrei migliorare il codice. Di funzionare funziona ma se viene fuori un altro nome che sia al maschile e sia al femminile rimane invariato?
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ehmmmmm.... Hai ragione
, effettivamente non ci avevo pensato affatto e non so perché non ho fatto neanche le prove.
Ma conviene inserire anche queste eccezioni nell'if? Attualmente non mi viene nessun'altra soluzione.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dovresti prendere un "nomario" dei nomi italiani (anche esteri perchè qualcuno può avere un nome esotico), verificare tutti quelli che finiscono per "a" o "o" se sono ambisessi, analogamente per le altre finali (manuel).
poi non ne farei di nulla:mexican:
 

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao, secondo me è meglio conoscerli di persona questi dipendenti :quote: (scherzo)
Penso che le variabile da controllare sono molte, tranne se nell'iscrizione non obblighi l'inserimento del cosice fiscale, allora con quel dato in più che hai puoi fare le verifiche di cui hai bisogno
Ciao
 

pup3770

Utente Attivo
30 Mag 2012
122
0
16
grazie mille per le risposte. Cmq si quello di conoscerli sarebbe ottimo;-) cmq per il controllo su un nomario sarebbe buona idea ed anche quella del codice fiscale. ma come vi dicevo essendo un progetto, penso che forse è meglio studiare per bene l'orale e fare la relazione.

Grazie cmq
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Controllo campo cap con trattino oltre ai numeri PHP 3
M [PHP] Help: controllo valori inseriti in un campo PHP 1
elpirata [Javascript] Controllo su campo ricerca data Javascript 1
P Controllo valori duplicati in un campo a Maschere continue MS Access 0
F controllo campo input PHP 15
P controllo campo select nel form Javascript 6
A controllo su valore da campo textarea non funziona PHP 7
Eugene Controllo numero caratteri campo input Javascript 6
C controllo campo email e checkbox Javascript 18
T javascript controllo campo e sostituzione lettere... Javascript 3
M Campo evidenzia e controllo mese sto impazzendo PHP 2
T campo typename in un controllo objectDataSource ASP.NET 3
P Aggiungi evento di controllo campo testo Ajax 11
G Access 2003 Runtime: Campo Calcolato in Origine controllo di una casella di testo MS Access 1
R Controllo lettura campo PHP 2
S controllo campo testo Javascript 2
E campo controllo in formail php PHP 1
M Modificare uno script per il controllo campo telefono Javascript 0
M problema controllo campo numerico PHP 1
E javascript controllo campo Javascript 10
T UpLoad, controllo campo & rinominafile Classic ASP 3
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
Z Controllo giorni MYSQL PHP 0
M Problema con controllo form in real time jQuery 6
MarcoGrazia jquery validate() controllo checkbox jQuery 2
M Controllo del codice fiscale/partita iva PHP 11
S Software windows10 per controllo contenuti web Windows e Software 6
S Controllo appuntamenti disponibili sul db PHP 5
L input (controllo se è stato modificato o no). PHP 1
W Controllo competitors serp SEO e Posizionamento 2
bubino8 [Javascript] popup di controllo elimina dopo window.print(); Javascript 0
M [MS Access] controllo valido se MS Access 8
MarkRed Come indicare, in una maschera, il primo controllo d'input, tipo "SetFocus" jQuery 9
C [PHP] Controllo <select> comportamento anomalo PHP 2
elpirata [Javascript] Controllo campi required non effettuato Javascript 2
A [PHP] Controllo nome utente form di registrazione PHP 4
L [PHP] controllo dimensione immagine per il resize PHP 2
M [ASP] Upload file da form controllo Classic ASP 5
P [PHP] Controllo al checkbox privacy PHP 6
S [MySQL] Controllo dati di una tabella in tempo reale MySQL 0
T [php] controllo su estensione file PHP 7
M [PHP] Script per controllo disponibilitá negozio in citta PHP 4
I Recupero accesso pannello di controllo dominio Leggi, Normative e Fisco 2
F Controllo dati sui campi di input tramite php PHP 1
R [MS Access] CONDIZIONE CHE CAMBIA PROPRIETA' DI UNA CONTROLLO MS Access 7
M [PHP] Dubbio controllo IF PHP 15
Fede72 Controllo registrazioni PHP Mysql PHP 5
L jquery e json controllo valori da determinate chiavi - keys jQuery 0
T [Javascript] un controllo con checkbox che non... controlla... Javascript 3

Discussioni simili