db, query e relazioni..testa in fumo

ciao a tutti,

dovrei strutturare un db composto da 2 tabelle,scheda_cliente e tabellaX.

Per la scheda cliente non ci sono problemi, i dati vengono inseriti.All interno di questa tabella presente anche il campo codanagra.

All'interno della tabellaX ho il campo punta nel quale il valore iniziale dev'essere: 000000.

il problema nasce dalla relazione che devo creare, in quanto:

per ogni nuovo cliente che si registra, il valore assegnato al campo 'codanagra' dev essere l'ultimo valore presente nel campo 'punta' +1. Inoltre, per impedire la sovrascrizione dei dati quando c una nuova registrazione il valore del campo 'punta' deve aumentare di 1.

le caratteristiche del valore 'punta' sono CHAR con lunghezza 6.

grazie a tutti per l attenzione,

un casino,vero?

inviato 9 anni fa
fertilia
X 0 X

no, no un casino.

select punta from tabellax order by punta desc limit 1.

ottieni l'ultimo punta inserito nella tabella, lo salvi in codanagra.

$punta = str_pad((ilrisultatodiprima++),6,'0',STR_PAD_LEFT);

insert into tabellax (punta, altri campi) values ($punta, altri valori);

risposto 9 anni fa
LonelyWolf
X 0 X

molto probabilmente sbaglio io, perch nel campo codanagra all interno del db mi compare la scritta SELECT

$queryA = "SELECT ult_cli FROM filepuntatbaseclientifornitori ORDER BY ult_cli DESC limit 1";
$codanagra = str_pad(($queryA++),6,'0',STR_PAD_LEFT);

extract($_POST);

$querypr = "INSERT INTO fileanagra (codanagra,ragsoc,codfiscale,indirizzo,cap,localita,prov,contattosped,telcontattosped,email,passwordWEB,privacy)
VALUES ('$codanagra','$ragsocpr','$codfiscale','$indirizzopr','$cappr','$localitapr','$provpr','$contattosped','$telcontattosped','$email','$passwordWEB','$privacy')";

grazie tante

risposto 9 anni fa
fertilia
X 0 X

certamente che compare select, ti metti a lavorare sulla query e non sul risultato della query, prima la esegui, poi recuperi il risultato e poi il resto del lavoro.

risposto 9 anni fa
LonelyWolf
X 0 X

ciao, non so se ti trovo ancora al pc data l ora:

con questo script, ottengo esattamente l'ultimo valore di ult_cli senza che esso venga aumentato di++

$queryA = "SELECT ult_cli FROM filepuntatbaseclientifornitori ORDER BY ult_cli DESC limit 1";
$res = mysql_query($queryA,$db);
$fetch = mysql_fetch_row($res);
$numero = $fetch[0];

$codanagra = str_pad(($numero++),6,'0',STR_PAD_LEFT);

extract($_POST);
$querypr = "INSERT INTO fileanagra (codanagra,ragsoc,codfiscale,indirizzo,cap,localita,prov,contattosped,telcontattosped,email,passwordWEB,privacy)
VALUES ('$codanagra','$ragsocpr','$codfiscale','$indirizzopr','$cappr','$localitapr','$provpr','$contattosped','$telcontattosped','$email','$passwordWEB','$privacy')";

veramente non so pi dove guardare..

risposto 9 anni fa
fertilia
X 0 X

c' solo una cosa che non ho capito: $numero deve essere inserito cos com' appena recuperato in codanagra o ci devi mettere il $numero +1 ?

cos ci mette quello incrementato:

$numero = $fetch[0];
$numero = $numero+1;
$codanagra = str_pad(($numero),6,'0',STR_PAD_LEFT);
risposto 9 anni fa
LonelyWolf
X 0 X

PERFETTO, GRAZIE TANTE, FUNZIONA!!! Ora come doveva venire

ma come mai se inserisco il valore

$numero = $numero+1;

non uguale a $codanagra = str_pad(($numero++),6,'0',STR_PAD_LEFT);

O0 O0 O0

risposto 9 anni fa
fertilia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda