Ricerca valore mysql e incremento

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Ciao Campione,

Se posso darti una mano in +, ti invio i files che ho preparato.

- db sql
- invia.php
- index.php
-include.php

se usi un ambiente tutto tuo ho pensato potesse serviti

ciao a domani
 

Allegati

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
Stessa cosa faccio per l'altra.. Non so se è corretto
se stai decidendo tu come deve essere la tabella,
ti suggerisco di definire 2 colonne separate,
la prima che contiene "AA" o "BB" o "CC",
la seconda che contiene il progressivo

se la tabella é la stessa e ti interessa un progressivo, purchessia progressivo, puoi definire la seconda colonna autoincrement
( insert normale )

se i 3 codici sono in tabelle diverse, allora la seconda colonna "deve" essere autoincrement
( insert normale )

se invece la tabella é unica e vuoi per forza la sequenza legata al codice, puoi usare la INSERT / SELECT
che ha il vantaggio di essere un'unica query senza necessità di codice particolare
esempio per il codice "AA"

SQL:
insert into tabella (campo1, campo2, campo3 .......,data_aggior)
select
    'AA',
    1+max(campo2),
    '$campo3',

.....

    '2020-05-27'
from tabella
where campo1 = 'AA'
il codice "AA" (come la data) le ho scritte come costanti, ma devono / possono essere passate come variabili,
vedi campo3 alfanumerico

mi sembra che si risolva molto facilmente, DIVIDENDO il codice in due colonne
e ti costa molto poco riassemblare "AA" + progressivo quando lo devi usare
 
Ultima modifica:
  • Like
Reactions: lucign0l0

Tommy03

Utente Attivo
6 Giu 2018
364
40
28
16
Bassano del Grappa (VI)
Beh io continuerei qui, anche perché alla conversazione si è unito marino51 che è molto più esperto di me e può aiutarti meglio. Come detto comunque oggi pomeriggio mi scarico il file zip che hai postato e provo a rivedere tutto da capo.
 

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Beh io continuerei qui, anche perché alla conversazione si è unito marino51 che è molto più esperto di me e può aiutarti meglio. Come detto comunque oggi pomeriggio mi scarico il file zip che hai postato e provo a rivedere tutto da capo.
ah ok...allora uniamo le due cose....troppo grandi..aspetto vostre...ciao
 

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
se stai decidendo tu come deve essere la tabella,
ti suggerisco di definire 2 colonne separate,
la prima che contiene "AA" o "BB" o "CC",
la seconda che contiene il progressivo

se la tabella é la stessa e ti interessa un progressivo, purchessia progressivo, puoi definire la seconda colonna autoincrement
( insert normale )

se i 3 codici sono in tabelle diverse, allora la seconda colonna "deve" essere autoincrement
( insert normale )

se invece la tabella é unica e vuoi per forza la sequenza legata al codice, puoi usare la INSERT / SELECT
che ha il vantaggio di essere un'unica query senza necessità di codice particolare
esempio per il codice "AA"

SQL:
insert into tabella (campo1, campo2, campo3 .......,data_aggior)
select
    'AA',
    1+max(campo2),
    '$campo3',

.....

    '2020-05-27'
from tabella
where campo1 = 'AA'
il codice "AA" (come la data) le ho scritte come costanti, ma devono / possono essere passate come variabili,
vedi campo3 alfanumerico

mi sembra che si risolva molto facilmente, DIVIDENDO il codice in due colonne
e ti costa molto poco riassemblare "AA" + progressivo quando lo devi usare
Ciao Marino

sono in contatto con Tommy per la realizzazione del programma che ho scritto in dettaglio sopra...se vuoi i files li mando anche a te...fammi sapere

grazie

ciao
 

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
manca però la risposta alla mia domanda, @lucign0l0 rileggi il mio post, credo non sia difficile capirlo
e se accettato rende inutile molta programmazione php
 

Tommy03

Utente Attivo
6 Giu 2018
364
40
28
16
Bassano del Grappa (VI)
Ho scaricato il file zip e ho cominciato a fare delle prove, anche se io uso PDO quindi ho dovuto cambiare parecchio, poi i file cerco di postarli come vanno bene a te.
In realtà devo ancora capire bene esattamente cosa devo fare, comunque per la vecchia richiesta (quella di controllare se i codici sono uguali, se si "accorpare" le somme) dovresti cavartela così:

Però ripeto, davvero non riesco a capire la nuova richiesta...
 

Allegati

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Come ti dicevo, partendo da questa tabella


CODICE= XXXX

Tipo Telaiocampo 1: a1234campo 2: b1234campo 3: c1234campo 4: a1234numero pezzi
001misura1: 1 misura2: 1misura3: 1misura3: 110
002misura2: 2 misura2: 2misura3: 2misura4: 211
xxxxxxxxxxxxxxxx
somma_misura1somma_misura2somma_misura3somma_misura4

PER LA PARTE VERTICALE:

Per ogni colonna relativo al valore CAMPO va creato un record, ma se sono uguali il record va accorpato, così:

ID,TT0001, A1234, [somma_misura1+somma_misura4], codice

ID,TT0002, B1234, somma_misura2,codice

ID,TT0003, C1234, somma_misura3,codice

Ovviamente ad ogni invio il TT dovrà essere incrementale se trova il valore CAMPO riempito


PER LA PARTE ORIZONTALE

L'utente scriverà il numero del tipo ( 1, 2, 3 ,4.....xxx)

Per orgni riga verrà creato un record TE progressivo

ID,TE0001, misura1,misura2,misura3,misura4, totale_pezzi
ID,TE0002, misura1,misura2,misura3,misura4, totale_pezzi
ID,TE0003,misura1,misura2,misura3,misura4, totale_pezzi

Anche qui il TE incrementale se trova il Valore Tipo riempito

Qui senza calcoli, ma solo scrivere i valori per riga...

Quello che dice MArino va bene, non ho capito dove e come farlo...

Grazie a entrambi e scusate se sono imbranato
 

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Ok, allora ti rispondo come risposto a TOmmy...secondo me tutto uninco dovrebbe andare bene, così si riduce il discorso di php

Come ti dicevo, partendo da questa tabella


CODICE= XXXX


Tipo Telaiocampo 1: a1234campo 2: b1234campo 3: c1234campo 4: a1234numero pezzi
001misura1: 1 misura2: 1misura3: 1misura3: 110
002misura2: 2 misura2: 2misura3: 2misura4: 211
xxxxxxxxxxxxxxxx
somma_misura1somma_misura2somma_misura3somma_misura4

PER LA PARTE VERTICALE:

Per ogni colonna relativo al valore CAMPO va creato un record, ma se sono uguali il record va accorpato, così:

ID,TT0001, A1234, [somma_misura1+somma_misura4], codice

ID,TT0002, B1234, somma_misura2,codice

ID,TT0003, C1234, somma_misura3,codice

Ovviamente ad ogni invio il TT dovrà essere incrementale se trova il valore CAMPO riempito


PER LA PARTE ORIZONTALE

L'utente scriverà il numero del tipo ( 1, 2, 3 ,4.....xxx)

Per orgni riga verrà creato un record TE progressivo

ID,TE0001, misura1,misura2,misura3,misura4, totale_pezzi
ID,TE0002, misura1,misura2,misura3,misura4, totale_pezzi
ID,TE0003,misura1,misura2,misura3,misura4, totale_pezzi

Anche qui il TE incrementale se trova il Valore Tipo riempito

Qui senza calcoli, ma solo scrivere i valori per riga...
 

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Ma questa tabella è molto diversa da quella che mi hai mandato. È la nuova tabella del database?
La parte orizzontale ho capito, basta raccogliere i dati del form e inserirli... Ma quella verticale cosa significa?
no no è la stessa...è quella che ti scritto l'altro ieri e ti ho rispiegato ...ma è la stessa giuro, dai un occhio su
 

Tommy03

Utente Attivo
6 Giu 2018
364
40
28
16
Bassano del Grappa (VI)
Si, intendevo che è strutturata diversamente da quella del file zip (c'erano tipo 17 o 18 campi, qui solo 6). Puoi rispiegarmi come funziona la parte verticale e come vorresti che si unisse con quella orizzontale? Cioè: con un forma io (utente) inserisco i valori orizzontalmente (id, codice (TEXXXX), 4 misure e il totale), poi la parte verticale come funziona? Il TT ad esempio dove va "inserito"?
 

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Ma questa tabella è molto diversa da quella che mi hai mandato. È la nuova tabella del database?
La parte orizzontale ho capito, basta raccogliere i dati del form e inserirli... Ma quella verticale cosa significa?
Se il valore CAMPO è uguale, quindi se

CAMPO 1: a1234
CAMPO": a1234
etcc

Creo un unico record scrivendo in mysql questi dati, con un'inica voce

ID,TT0001, A1234, [somma_misura1+somma_misura4], codice

Se il valore CAMPO è diverso , scrivo record diversi

ID,TT0002, B1234, somma_misura2,codice

ID,TT0003, C1234, somma_misura3,codice

Ovviamente ad ogni invio il TT dovrà essere incrementale

Il record lo scrivo solo dove trovo il valore campo compilato, ovvero...

CAMPO 1 pieno
CAMPO 2 pieno
campo 3 e 4 vuoto

scrivo solo i primi due usando la regola sopra
 

lucign0l0

Utente Attivo
9 Ott 2006
47
0
6
Si, intendevo che è strutturata diversamente da quella del file zip (c'erano tipo 17 o 18 campi, qui solo 6). Puoi rispiegarmi come funziona la parte verticale e come vorresti che si unisse con quella orizzontale? Cioè: con un forma io (utente) inserisco i valori orizzontalmente (id, codice (TEXXXX), 4 misure e il totale), poi la parte verticale come funziona? Il TT ad esempio dove va "inserito"?
Il tt non lo scrive l'utente....l'utente inserirà dei codici nel valore CAMPO.....il TT rappresenta il record che creo....come se fosse l'id del record, ma non lo è, ovvero per ogni record inserito scrivo il valore TTxxxx incrementale


ID, TT00001, valore_campo, somma