Campi numerici per cifre grandi

  • Creatore Discussione Creatore Discussione xone
  • Data di inizio Data di inizio

xone

Utente Attivo
4 Apr 2014
181
14
18
Salento
Ciao a tutti, come da titolo avrei bisogno di configurare dei campi numerici nel DB che accettino grandi cifre.
Nello specifico devo inserire i chilometri delle auto e quindi potranno essere fino 500.000 ed il prezzo che potrà essere anche di 2.500.000 euro. Che campo mi consigliate per tali cifre nel modo indicato e senza che compare la virgola? Il problema sta nella ricerca, se un utente seleziona il prezzo massimo di 2.500.000 ricevo il seguente errore:
Fatal error: Call to a member function fetch_array() on a non-object mentre fino a 500.000 funziona tutto bene.

Attualmente uso:

- Campo KM: char(50)

- Campo prezzo: char(50)

Ho provato a settare DECIMAL 9,2 ma non funziona bene poi la ricerca. Attendo vostri consigli.
 
Se sono cifre conviene usare INT.
Visto che i numeri che devi inserire non sono poi così grandi ti basta INT, se si tratta di cifre che vanno oltre i 2 miliardi allora puoi usare il BIGINT.

Per il prezzo puoi usare DECIMAL(10, 2), dove 10 sta per le cifre intere e 2 per il numero di cifre decimali.
 
Ultima modifica:
Ciao, sono cifre ma c'è la punteggiatura, per esempio per i km 80.000, 500.000 ecc.. Ai campi int è possibile usare il punto?
Ho provato per il prezzo ad impostare decima(10,2) ma se seleziono come prezzo 2.500.000 mi viene fuori quell'errore indicato.
 
Prova ad inserire 2500000,00.
Per quanto riguarda come stamparli a video, puoi utilizzare molte funzioni mysql o php che te li stampino come preferisci.
Quello che vuoi tu (un punto ogni 3 cifre) si può ottenere usando FORMAT(N, D), dove N sta per il numero da stampare a video e D per il numero di cifre decimali.
Nel tuo caso FORMAT(Km, 0)
 
Se va tutto per il meglio scrivi come hai risolto il tuo problema.
 
Ho risolto impostando il campo KM come INT e il campo prezzo DECIMAL 10,0 poi con la funzione number_format mi stampo il prezzo completo di punteggiatura in questo caso es.: 1.000 euro: $prezzo = number_format($prezzo, 0, ',', '.');
Grazie per l'aiuto.
 

Discussioni simili