Numerare automaticamente campo numerico con più parametri

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Buongiorno, il codice che mi ha postato marino51 funziona perfettamente, soltanto che adesso mi è sorta un altra esigenza di cui non avevo tenuto conto, cioè quella di poter incrementare il campo Num_Pratica di ogni cliente sommando +1 al numero dello steso cliente esistente nel DB, mi spiego meglio:
Cliente Pippo nel DB ha nell'anno 2015 la pratrica n. 1
Cliente Pluto nel DB ha nell'anno 2015 le pratiche n.1, 2 , 3
Vorrei che se vado ad inserire un altra pratica del cliente Pippo nell'anno 2015 il campo Num_Pratica diventasse 2
mentre se inserisco un altra pratica del cliente Pluto nell'anno 2015 il campo Num_Pratica diventasse 4
ovviamente sempre tenendo conto dell'anno.
Con la speranza di essermi spiegato...
Allego codice funzionante con un solo parametro (AnnoSinistro)
PHP:
//NUMERAZIONE AUTOMATICA

$Data_Richiesta_Utente = date('d-m-Y');

$AnnoSinistro = date('Y');

$query = "SELECT 1+MAX(Num_Pratica) as Num_Pratica FROM tblsinistri where AnnoSinistro=".$AnnoSinistro; 
     
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) $Num_Pratica = $row['Num_Pratica'];

if ( empty($Num_Pratica) ) $Num_Pratica = 1;

//FINE NUMERAZIONE AUTOMATICA

Ho provato a fare così, ma mi da sempre la pratica n.1 per ogni cliente anche se nel DB ci sono già altre pratiche per quel cliente.
PHP:
//NUMERAZIONE AUTOMATICA
$Num_Pratica = "";
$AnnoSinistro = date('Y');

//$query = "SELECT 1+MAX(NumPratica) as NumPratica FROM tblsinistri where Nominativo = '".$Nominativo." and AnnoSinistro=".$AnnoSinistro."'"; 
$query = "SELECT 1+MAX(NumPratica) as NumPratica FROM tblsinistri where Nominativo='.$Nominativo' AND AnnoSinistro=".$AnnoSinistro; 

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) $NumPratica = $row['NumPratica'] AND $AnnoSinistro=$row['AnnoSinistro'];

if ( empty($NumPratica) ) $NumPratica = 1;

//FINE NUMERAZIONE AUTOMATICA

Grazie
Max61
 
sostanzialmente devi aggiungere il cliente nella query, null'altro
PHP:
//NUMERAZIONE AUTOMATICA

$Data_Richiesta_Utente = date('d-m-Y');

$AnnoSinistro = date('Y');

$query = "SELECT 1+MAX(Num_Pratica) as Num_Pratica FROM tblsinistri where Nominativo='".$Nominativo."' AND AnnoSinistro=".$AnnoSinistro; 
     
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) $Num_Pratica = $row['Num_Pratica'];

if ( empty($Num_Pratica) ) $Num_Pratica = 1;

//FINE NUMERAZIONE AUTOMATICA
controlla bene "$Nominativo" perché se è errato (non trova il valore nel db) ti verrà restituito sempre 1
ciao
Marino
 
Ciao Marino, quindi la query che ho fatto è giusta?
Il campo si chiama $Nominativo, esattamente come è scritto nella query
Ho provato a mettere un echo $Nominativo;, mi restituisce correttamente il nome del cliente selezionato...non capisco
Ciao Max61
 
Ho provato a mettere un echo $Nominativo;, mi restituisce correttamente il nome del cliente selezionato...non capisco
Max, attento, gli spazi non si vedono ....
se il nome è giusto, deve rispondere correttamente

io eviterei come la peste, il nominativo come elemento di ricerca, per caratteri accentati, apostrofo ....
perché non usi il codice fiscale ?
 
Buongiorno, ho risolto aggiustando gli apostrofi e le doppie virgolette.
Però hai ragione te, conviene utilizzare il codice fiscale, da meno problemi.

Grazie ancora
Max61
 

Discussioni simili