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:
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:
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?
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?