• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Autoincrement id

Mr.Hyde

Utente Assiduo
Autore del topic
28 Dicembre 2010
892
67
Miglior risposta
0
Salve a tutti. Dispongo di una tabella (cms_news) con ID con Autoincrement. Ma c'è un problema. Non mi incrementa numeri 'piccoli', tipo 24, 25, 26.. ma tipo una news ha questo id: 910024 e dovrei cambiarlo manualmente dalla tabella. Sapreste dirmi perché mi causa questo problema? D:
 
Non ho capito cosa vuoi dire... Un campo intero autoincrement è fatto per assegnare un valore che incrementa per ogni record in base ad un contatore, quindi dovrebbe partire da 1 e via via incrementare.
Non capisco cosa intendi con "non incrementa i numeri piccoli" e con "ho una news ha questo id: 910024 e dovrei cambiarlo manualmente dalla tabella"
 
Salve a tutti. Dispongo di una tabella (cms_news) con ID con Autoincrement. Ma c'è un problema. Non mi incrementa numeri 'piccoli', tipo 24, 25, 26.. ma tipo una news ha questo id: 910024 e dovrei cambiarlo manualmente dalla tabella. Sapreste dirmi perché mi causa questo problema? D:

Vuoi dire che nel campo "id" sei arrivato al valore 910024?
 
Grazie a tutti, alla fine sono andato a risolvere con:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
. Sinceramente non so come si fosse 'sfasato' l'incremento

Avrei un altro problema il seguente:
1887058e78c751e007da796e5b1be882.png
Come potete vedere dall'immagine il ban terminerebbe nel 1904.. ma la colonna (expire) dà come timestamp: 2225658113 che, convertendolo, è Wed, 11 Jul 2040 22:21:53 GMT perché?
 
Ultima modifica:
Come converti la scritta prima di stamparla? Posta il codice (php immagino) che utilizzi ;)
 
Ora la data è un po' più recente:
Dice che scade il 01-01-1970 all'1


Inviato dal mio iPhone utilizzando Tapatalk
 
Strano... prova a mettere un echo di $row['expire'] e dimmi cosa esce, così capiamo se il problema è la conversione della data o l'ottenimento del valore dal database...
 
Ok, allora questo è il codice che ho utilizzato per stampare il primo expire:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
ed esce:
Perfavore, Entra oppure Registrati per vedere i Link!


Modificando l'echo in questo modo: date("d-m-Y h:i:s", $row['expire']); esce la data UNIX
 
Che tipo di campo è expire nella tabella? Datetime o timestamp? Se è datetime dovrebbe funzionare correttamente la funzione strtotime che ti ho dato prima, se è timestamp prova invece con questa
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Perfavore, Entra oppure Registrati per vedere i Link!


Con intval stessa cosa di strotime ^^, la colonna è con valore double.. lol

P.s: con qualsiasi altra data tipo tra un'ora ecc, la funzione va correttamente!
 
Ultima modifica:
Ok, ora ho capito il problema... la data che hai messo non è un timestamp unix.
Il timestamp unix viene rappresentato con un intero a 32 bit, perciò le date che puoi rappresentare sono limitate al 19 gennaio 2038; il problema si inizierà a far sentire a breve ed immagino che facilmente nel prossimo futuro il timestamp unix verrà mappato su 64 bit...Quindi il codice che ti ho dato io funziona, a patto che gli passi date che siano timestamp.
Se hai la necessità di rappresentare date che vanno oltre puoi utilizzare la classe
Perfavore, Entra oppure Registrati per vedere i Link!
che rappresenta internamente le date in modo diverso (ma di conseguenza dovresti cambiare la struttura del database)
 
Mh, potrei dunque modificare la tabella in timestamp, ma tuttavia dovrei cambiare anche l'emulatore? (habbo retro)


Inviato dal mio iPhone utilizzando Tapatalk
 
Non ho scritto quello... Se vuoi tenere il timestamp il campo va bene int, timestamp o double,ma per ora sei limitato a rappresentare date fino al 2038... Se vuoi andare oltre ti tocca usare Date o datetime...
La cosa più semplice è evitare date che superano il 2038 (per la tua applicazione mi sembra un compromesso più che accettabile)
 
Perfetto, ti ringrazio e risolverò dall'emulatore ^^. Grazie per la spiegazione dettagliatissima, considera risolto


Inviato dal mio iPhone utilizzando Tapatalk