Numerare automaticamente campo numerico

Max61

Utente Attivo
2 Mar 2014
740
4
18
Buongiorno, sono alle prese con un altro problema, come da titolo vorrei numerare il campo numerico 'Num_Prog' automaticamente all'apertura della pagina aumentando di uno il numero maggiore presente nel DB nell'anno in corso, al cambio dell'anno vorrei che il campo Num_Prog ripartisse da 1.

Allego codice dell'input campo Num_Prog:
PHP:
<span class="tip"><strong>Numero Pratica &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="Num_Pratica" value="<?php echo $Num_Pratica; ?>" style="color:black; font-family:arial; font-size: 11pt"; maxlength="6" size="3" placeholder="" required>

Grazie per l'aiuto
Max61
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
147
5
18
Roma
Da quale funzione viene valorizzato $Num_Pratica?
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao, nel frattempo sono riuscito a fare qualcosa, sono riuscito a numerarlo automaticamente, leggendo il DB e incrementando di 1.
Mi rimane la gestione della numerazione nell'anno, cioè che riparta dal numero 1 al 01/01.
Allego codice:
PHP:
//NUMERAZIONE AUTOMATICA
$Num_Pratica = "";
$query = "SELECT Num_Pratica, MAX(Num_Pratica) FROM tblsinistri"; 
	 
$result = mysql_query($query) or die(mysql_error());
$Num_Pratica +1;

// Print out result
while($row = mysql_fetch_array($result)){
	
        $ultimonumero_nelDB="".$row['MAX(Num_Pratica)'];
	$Num_Pratica=$ultimonumero_nelDB + 1;

 }
//FINE NUMERAZIONE AUTOMATICA

Grazie
Max61
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
147
5
18
Roma
Prova così
PHP:
$query = "SELECT `id`, `anno`, `Num_Pratica`, COUNT(anno) AS conta FROM `tblsinistri` GROUP BY `anno`";  
      
$result = mysql_query($query) or die(mysql_error()); 


// Print out result 
while($row = mysql_fetch_array($result)){ 
     $conta = row['conta'];
	 $anno = date('Y', time());


	for($conta = 1; $conta <= $conta; $conta++)
	{
		echo $conta . ") Numero Pratica " . $row['Numero_Pratica'] . "<br>";
	}

}

Semplicemente è più pulito.

Vedi cosa ti da
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ho provato il tuo codice, ma la pagina non si ferma più, si aggiorna continuamente, siamo arrivati al record:
195480) Numero Pratica 1
partendo da
1) Numero Pratica 1
e ancora non si ferma

Ciao
Max61
 
Ultima modifica:

The-Night

Utente Attivo
18 Ott 2015
59
0
6
PHP:
//NUMERAZIONE AUTOMATICA
$Num_Pratica = "";
$query = "SELECT Num_Pratica, MAX(Num_Pratica) FROM tblsinistri";

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

$AnnoCorrente = date("Y");

if ($AnnoCorrente > $AnnoScrittoNelDB) {
  $Num_Pratica = "1";
}
else {

  $Num_Pratica +1;
  
  // Print out result
  while($row = mysql_fetch_array($result)) {
    
    $ultimonumero_nelDB="".$row['MAX(Num_Pratica)'];
    $Num_Pratica=$ultimonumero_nelDB + 1;
    
  }
}
//FINE NUMERAZIONE AUTOMATICA

prova così, la variabile $AnnoScrittoNelDB dovrebbe riportare l'anno scritto nel database.
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao, ho provato il tuo codice funziona se disattivo la compilazione automatica del campo 'AnnoSinistro' con l'anno corrente, quindi il campo 'AnnoSolare' che ho creato (viene aggiornato automaticamente con una query UPDATE all'apertura della pagina) che quindi sarà sempre uguale al campo 'AnnoSinistro', vanificando ($AnnoSinistro > $AnnoSolare):


Non so se mi sono spiegato quindi allego codice:

PHP:
//NUMERAZIONE AUTOMATICA
$Num_Pratica = "";
$query = "SELECT Num_Pratica, MAX(Num_Pratica) FROM tblsinistri";

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

//VALORIZZO I CAMPI DATA
$AnnoSinistro=date("Y");
$Data_Richiesta_Utente =date("d-m-Y");
//FINE VALORIZZO I CAMPI DATA

if ($AnnoSinistro > $AnnoSolare) {
  $Num_Pratica = "1";
}
else {

  $Num_Pratica +1;
  
  // Print out result
  while($row = mysql_fetch_array($result)) {
    
    $ultimonumero_nelDB="".$row['MAX(Num_Pratica)'];
    $Num_Pratica=$ultimonumero_nelDB + 1;
    
  }
}
//FINE NUMERAZIONE AUTOMATICA

Ciao Max61
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
Ciao, ma scusa la variabile $annosolare è quella scritta nel database giusto?

Adesso, lui controlla che l'anno corrente sia maggiore a quello scritto nel database e riparte da 1.
Da quello che ho capito il problema è che te aggiorni il database all'apertura della pagina, quindi il controllo dell'if diventa falso.
Potresti risolvere facendogli aggiornare l'anno solo dopo aver controllato if ($AnnoSinistro > $AnnoSolare), il problema è che se te hai più utenti il problema si ripropone.
Avendo un numero pratica, si potrebbe assegnare un nome utente ad un anno, quindi lui controlla sia il nome utente o un parametro univoco e poi controlla l'anno.

Esempio: Giovanni 2014

Potresti mettere anche nome, cognome e anno, fammi sapere se c'è un parametro univoco non replicabile che salvi nel dabase.

Se postassi il link della pagina o spieghi esattamente cosa deve fare e quando sarebbe molto più semplice aiutarti. :D
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Cerco di spiegarmi:
vorrei automatizzare la numerazione delle pratiche (campo Num_Pratica) incrementandolo di 1 ad ogni inserimento, questo fino al 31/12, dal 01/01 vorrei che la numerazione ripartisse da 1.
Avrei anche la necessità di poter aggiungere nell'anno X una pratica relativa all'anno X-1 e che incrementasse le pratiche di quell'anno.
Esempio: anno 2014 le pratiche inserite sono 1520, a gennaio 2015 le pratiche inserite sono 80, arriva una pratica che si riferisce all'anno 2014, sarà la numero 1521 e non la 81.
Con la speranza di essermi spiegato ti ringrazio e saluto
Max61
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
ok, quindi possiamo fargli salvare 2015-1 con il numero in grassetto riguardante il numero della pratica.

Giusto?
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Quindi vorresti associare l anno al numero di pratica se non ho capito male. Io l avevo pensato diversamente ma puo essere una soluzione. Mi fai un esempio?
Grazie
Max61
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
PHP:
//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 (Num_Pratica 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.
}

Naturalmente io non conosco il nome delle colonne o delle tabelle, quindi controlla che siano corretti.
Il problema è che se tu volessi fare questo controllo per ogni utente, servirebbe un altro dato univoco come il nome.
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao e grazie, ho provato il tuo codice, ma mi da 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 249

ecco il codice su quella riga
PHP:
//corrispondenze trovate
$trovati = mysql_num_rows($sql_cerca);

Max61
 
Ultima modifica:

The-Night

Utente Attivo
18 Ott 2015
59
0
6
c'è qualcosa di sbagliato
PHP:
$sql_cerca = mysql_query("SELECT * FROM tblsinistri  WHERE (Num_Pratica LIKE '%" . $AnnoSinistro . "%');
controllo di aver dato i nome corretti delle tabelle e delle colonne.
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
E' tutto corretto, l'unica cosa che ho dovuto aggiungere è " alla fine del codice prima della parentesi chiusa
PHP:
$sql_cerca = mysql_query("SELECT * FROM tblsinistri  WHERE (Num_Pratica LIKE '%" . $AnnoSinistro . "%' ");
ma mi da l'errore...forse è quello? Ma se senza il codice non va
 

The-Night

Utente Attivo
18 Ott 2015
59
0
6
$sql_cerca = mysql_query("SELECT * FROM tblsinistri WHERE (Num_Pratica LIKE '%" . $AnnoSinistro . "%' ");

ma la parola in maiuscolo è il nome della colonna dove è riportato l'anno?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ciao Max,
è chiarissimo come vuoi ottenere la numerazione delle pratiche
ma non è chiaro come definisci che una pratica appartiene all'anno "x"
quale campo associato alla pratica definisce l'anno di appartenenza ? questo campo come è definito nel db ovvero quale formato ha ?
ciao
Marino
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
$sql_cerca = mysql_query("SELECT * FROM tblsinistri WHERE (Num_Pratica LIKE '%" . $AnnoSinistro . "%' ");

ma la parola in maiuscolo è il nome della colonna dove è riportato l'anno?
No la colonna dove e' riportato l anno e' $AnnoSinistro, mentre $Num_Pratica e' il numero progressivo delle pratiche. Ciao
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao Marino, nella fase di compilazione della pagina dei dati ci sono tra gli altri i campi $AnnoSinistro e $Num_Pratica, $AnnoSinistro è valorizzato all'apertura della pagina da questo codice
PHP:
$AnnoSinistro=date("Y");
$Num_Pratica vorrei che fosse valorizzato automaticamente in modo progressivo all'apertura della pagina da 1 a ∞ nel periodo che va dal 01/01 al 31/12 dell'anno X, mentre nell'anno X+1 vorrei che la numerazione ripartisse da 1.
Il formato del campo $AnnoSinistro è: int(4)
Chiedi se non sono stato chiaro
Ciao
Max61
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Numerare automaticamente campo numerico con più parametri PHP 4
Gentacti [PHP] Numerare automaticamente PHP 2
T [risolto] numerare progressivamente i record estratti da un dbase Classic ASP 4
F Aggiungere automaticamente sito a home del telefono HTML e CSS 2
G inserire dati automaticamente in mysql PHP 0
M [PHP] Compilare automaticamente il campo data PHP 5
L [PHP] Form da select compilare campi automaticamente PHP 1
L [MS Access] come popolare automaticamente i campi di una sottomaschera MS Access 8
trattorino [PHP] blocchi div che si posizionano in alto automaticamente PHP 5
asevenx [PHP] Eliminare record automaticamente dopo una certa data PHP 12
Lucia Fiore refresh di un div automaticamente Javascript 2
M diminuire automaticamente grandezza input tabella Javascript 5
asevenx Pubblicare automaticamente un articolo da linkedin su blog wordpress WordPress 1
A app che apre automaticamente il bluetooth e connette automaticamente il dispositivo Sviluppo app per Android 3
M Inserire automaticamente il nome di un'immagine in una variabile di tipo stringa Sviluppo app per Android 1
asevenx Correggere automaticamente caratteri strani (rumbo con punti interrogativi) HTML e CSS 9
N FPDF stampare pdf automaticamente su stampante impostata PHP 0
G Aggiornare colonna tabella automaticamente in MysQl PHP 2
L Realizzare script con grafico e tabelle che si aggiornano automaticamente jQuery 1
A stampare più pagine automaticamente PHP 3
E visualizzare automaticamente tutte le immagini di una cartella PHP 1
B Diminuire automaticamente la grandezza del font se i caratteri superano un certo numero PHP 4
E Inviare una mail automaticamente, da un account gmail PHP 1
blips Checkbox attivate automaticamente Javascript 7
Shyson Calcolare la Pasqua automaticamente Javascript 17
T Inserire automaticamente Categorie in hikashop da php mysql PHP 0
F Esiste un programma che verifica la home page e la corregge automaticamente? HTML e CSS 7
A Word per Mac 2011: è possibile formattare automaticamente in corsivo tutte le date di un doc.? Mac e Software 2
S PHP per ridurre automaticamente file JPG PHP 7
D [SERVIZIO FB] PageRush.net Pubblica Automaticamente i contenuti sulle tue pagine di facebook! Annunci servizi di Social Media Marketing 0
A usare onclick automaticamente senza cliccare HTML e CSS 13
P Joomla: Check box spuntata automaticamente! Joomla 1
V Immagini che cambiano automaticamente Javascript 1
G Creare automaticamente un box con le novità HTML e CSS 0
S Aggiungere una linea in un form automaticamente PHP 1
S Data aggiornamento automaticamente cambiata HTML e CSS 0
L word: macro per mettere in corsivo automaticamente Windows e Software 4
I Outlook archivia automaticamente e si perde la posta Windows e Software 2
Oscar83 Si possono centrare automaticamente i CSS?? HTML e CSS 2
L confrontare automaticamente due liste excell Windows e Software 0
B Casella "Ricordami" o "Accedia automaticamente" in un form HTML e CSS 1
E Generare automaticamente links... PHP 5
S [VB .NET 2005] Compilare automaticamente un form .NET Framework 2
R caricare campi automaticamente da combo Classic ASP 7
F ridimensionare automaticamente Javascript 1
H Parte di un'immagine che al passaggio del mouse suona automaticamente Flash 1
J Aggiungi automaticamente il tuo sito a molti database SEO e Posizionamento 1
N Calcolare automaticamente un campo in una maschera Database 2
G Valore del campo id maggiore di 9999 MySQL 0
S da casella di testo a campo tabella Database 0

Discussioni simili