//recupero l'anno corrente.
$AnnoSinistro=date("Y");
//recupero la data corrente.
$Data_Richiesta_Utente =date("d-m-Y");
//query mysql di ricerca anno.
$sql_cerca = mysql_query("SELECT * FROM tblsinistri WHERE (AnnoSinistro LIKE '%" . $AnnoSinistro . "%' ");
//corrispondenze trovate
$trovati = mysql_num_rows($sql_cerca);
//se ci sono risultati incremento il numero della pratica.
if($trovati > 0) {
$Num_Pratica +1;
// Print out result
while($row = mysql_fetch_array($result)) {
$ultimonumero_nelDB="".$row['MAX(Num_Pratica)'];
$Num_Pratica=$ultimonumero_nelDB + 1;
}
}
// Se non trovo corrispondenza setto il numero della pratica a 1.
else {
$Num_Pratica = "1";
//qui aggiorni il DB aggiungendo l'anno e il numero della pratica.
}
//recupero l'anno corrente.
$AnnoSinistro=date("Y");
//recupero la data corrente.
$Data_Richiesta_Utente =date("d-m-Y");
//query mysql di ricerca anno.
$sql_cerca = mysql_query("SELECT * FROM tblverbali WHERE (AnnoSinistro LIKE '%" . $AnnoSinistro . "%' ");
//corrispondenze trovate
$trovati = mysql_num_rows($sql_cerca);
//se ci sono risultati incremento il numero della pratica.
if($trovati > 0) {
$Num_Pratica +1;
// Print out result
while($row = mysql_fetch_array($result)) {
$ultimonumero_nelDB="".$row['MAX(Num_Pratica)'];
$Num_Pratica=$ultimonumero_nelDB + 1;
}
}
// Se non trovo corrispondenza setto il numero della pratica a 1.
else {
$Num_Pratica = "1";
//qui aggiorni il DB aggiungendo l'anno e il numero della pratica.
}
Max, scusa, non ho chiesto il db (me ne avevi già inviato copia), ti ho chiesto
quale campo associato alla pratica definisce l'anno di appartenenza ? questo campo come è definito nel db ovvero quale formato ha ?
la ragione della mia domanda è per sapere come leghi anno di appartenenza e pratica, proprio in funzione del fatto che vuoi inserire una pratica dell'anno precedente, quando siamo già nell'anno corrente
se non è chiaro questo legame, non credo si arrivi ad una soluzione
ciao
Marino
Lo screen del database, come te lo mando visto che è 185.3 kb e qua ne accettano fino 100?
e comunque mi ripeto, mi questo errore:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\GestioneSinistri\views\Sinistro_Insert.php on line 248
La riga in questione è:
//corrispondenze trovate
$trovati = mysql_num_rows($sql_cerca);
i nomi di campi e tabelle sono giusti...
Ciao
Max61
non serve lo screen del database,
è sufficiente che scrivi il nome della tabella e il nome del campo
tutto il resto è superfluo
se non definisci questo, non credo che si possa giungere a una soluzione,
questa è la seconda discussione aperta sullo stesso argomento, anche nella precedente ho cercato di capire, ma se non mi aiuti, finisce come allora .... nel nulla
premesso che non mi hai scritto come si chiama il campo della tabella che identifica l'anno di appartenenza,
lo identifico con "AnnoSinistro" derivandolo dal nome della variabile php, se non fosse questo, lo cambierai
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'];
//FINE NUMERAZIONE AUTOMATICA
ma con il codice che hai postato e che ho ripreso, modificando solo le parti necessarie,
non capisco come puoi inserire una pratica relativa all'anno precedente, nello specifico
se usi la data del sistema
L'anno di appartenenza della pratica lo hai identificato giustamente con $AnnoSinistro
Riguardo all'inserimento automatico, pensavo di toglierlo e di inserirlo a mano, così da poter digitare l'anno che voglio (X-1).
Detto ciò ho fatto alcune prove con il tuo codice
1) Nell'anno corrente incrementa perfettamente il numero nel campo Num_Pratica
2) nell'anno successivo il campo Num_Pratica rimane vuoto
devo modificare qualcosa?
Ciao marino51, il codice che mi hai postato 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, mi spiego meglio:
Cliente Pippo nel DB ha la pratrica n. 1
Cliente Pluto nel DB ha le pratiche n.1, 2 , 3
Vorrei che se vado ad inserire un altra pratica del cliente Pippo il campo Num_Pratica diventasse 2
mentre se inserisco un altra pratica del cliente Pluto il campo Num_Pratica diventasse 4
ovviamente sempre tenendo conto dell'anno.
con la speranza di essermi spiegato allego il codice che ho tentato di modificare senza nessun risultato utile
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
Questo è il codice funzionante che mi hai postato te che incrementa di 1 l'ultimo numero nel DB:
PHP:
//NUMERAZIONE AUTOMATICA
$NumPratica = "";
$AnnoSinistro = date('Y');
$query = "SELECT 1+MAX(NumPratica) as NumPratica FROM tblsinistri where AnnoSinistro=".$AnnoSinistro;
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) $NumPratica = $row['NumPratica'];
if ( empty($NumPratica) ) $NumPratica = 1;
//FINE NUMERAZIONE AUTOMATICA