Problema order by con varchar

  • Creatore Discussione Creatore Discussione LaKanka
  • Data di inizio Data di inizio

LaKanka

Utente Attivo
29 Ago 2008
166
0
0
nel mio database ho dei valori di prezzi in varchar poichè se il valore che l'utente vuole inserire è 0 allora devo inserire nel database "trattativa privata"..
Il problema è che devo visualizzare i miei immobili in ordine di prezzo, ma con l'order by vengono fuori a partire dal valore che inizia con 1 e via dicendo..
ES: 100000
200
30000000
40
e non sono per niente in ordine crescente........ come posso fare?????
 
stai attento chhe quando confronti delle stringe il valore

100 è minore di 20 in quanto il confronto avviene carattere x carattere e 1 è minore di 2
dovresti riuscire a fare che i valori siano inseriti in questa maniera (esempio)

00100
00020
in questo caso 00020 è minore di 00100
poi a video devi far sparire gli zeri
oppure dovresti aggiungere un campo ed inserire i prezzi come numero (intero o decimale) e ordinare per quel campo

ciao
 
scusa mentre scrivevo mi è venuto in mente
cosa ti interessa che nel db ci sia la dictura "trattativa privata"?

quando nel campo hai 0 a video fai
if $prezzo==0 echo "trattativa privata"
else echo $prezzo

a questo punto il campo prezzo puo settarlo numerico
ciao
 
controllo dati numerici

ok, ma se poi vengono inseriti caratteri nel campo int mi darà un errore a livello di sql..
c'è un controllo javascript per sapere se nel mio campo <input vengono inseriti solamente valori numerici??
 
ecco leggi questo articolo

https://www.mrw.it/javascript/artic...rificare-campo-abbia-valore-numerico_179.html

io l'ho utilizzato per inserire i prezzi di articoli vari e, per evitare errori, nel form di inserimento prezzo ho messo due campi

il primo con numero da zero a 99999 chiamato prezzo
il secondo con numero da zero a 99 chiamato prezzoDec
sono visualizzati vicini e separati da una (finta) virgola
prima di fare l'insert

$prezzo=$_POST['prezzo'].".".$_POST['prezzoDec']

(utilizzo il punto in quanto i numeri decimali sono gestiti dal punto e non dalla virgola)

nella tabella del db ho definito il campo prezzo come decimale (8,2)
eventualmente ti posto il codice come l'ho utilizzato
fammi sapere
ciao
 

Discussioni simili