Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643

    [MySql] Disperzione con insert

    Ragazzi...è urgente...devo finire il progetto dell'esame entro 24 ore...

    Bene ho una tabella definita in questo modo

    codice:
    create table INSERZIONE
    (
    Id_Oggetto int not null auto_increment primary key,
    Titolo varchar(60) not null,
    Descrizione text,
    Costo_Base float(4,2),
    Scadenza datetime,
    Compralo_Subito float(4,2),
    Id_Venditore varchar(20) not null references UTENTE(User_Id),
    Id_Categoria varchar(30) not null references CATEGORIA(Id_Categoria)
    ) type=InnoDB;
    Dentro i campi Costo_Base e Compralo_Subuito che sono dei float ci devo mettere dei prezzi che potrebbero avere la virgola (i prezzi sono del tipo 500 riferito a 500 € oppure 1,5 per dire un euro e mezzo).

    Ho provato ad inserire dei dati in questa tabella ma mi và in errore e non capisco perchè...se faccio la seguente insert:

    insert into INSERZIONE values
    (NULL, 'Olimpus E-510', 'Reflex digitale Olympus con sensore 10,1 MP stabilizzato', 200, '2008-02-20', 250, 'Fotografo84', 11);


    mi dà il seguente errore:

    "ERROR 1264 (22003): Out of range value adjusted for column 'Costo_Base' at row 1"

    Vi prego mi date una mano a risolvere? cosa c'è che non và? Se non consegno entro il 20 mattina mi tocca fare l'orale a Giugno e mi suicido

  2. #2
    Elimina quei FLOAT insulsi ed usa DECIMAL(4,2). Vedrai che ti liberi di un bel peso! Ho da poco trattato un argomento del genere nel mio blog in firma!

  3. #3
    Costo_Base float(4,2),
    Compralo_Subito float(4,2),

    float(4,2) significa 4 cifre di cui due decimali. Tu vuoi inserire 200 che diventera' 200.00 e se le conti sono cinque in totale e non quattro. per cui il valore e' out of range




    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Ottima risposta, comunque sconsiglio vivamente l'utilizzo dei maledetti FLOAT, potrebbero causare pericolosi arrotondamenti!!

    Comunque ha ragione MAC!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643
    si stò provando ad alterare la tabella con alter table...sono disperato...per voi in un giorno (domani) si riescono a fare una 20ina di query? (magari anche non impossibili)...se non consegno entro il 20 mattina l'oral mi slitta a Maggio...eventualmente dite che una mano per le query sul forum la trovo?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643
    RAGAZZI non funziona...ho provato ad impostare quei due campi come decimal(10,2) ma ancora dà lo stesso errore:

    mysql> insert into INSERZIONE values
    -> (NULL, 'Olimpus E-510', 'Reflex digitale Olympus con sensore 10,1 MP stab
    ilizzato', 200, '2008-02-20', 250, 'Fotografo84', 11);
    ERROR 1136 (21S01): Column count doesn't match value count at row 1
    mysql>

    Che può essere?

  7. #7
    Originariamente inviato da piero.mac
    Costo_Base float(4,2),
    Compralo_Subito float(4,2),

    float(4,2) significa 4 cifre di cui due decimali. Tu vuoi inserire 200 che diventera' 200.00 e se le conti sono cinque in totale e non quattro. per cui il valore e' out of range

  8. #8
    Ho testato la query:
    Codice PHP:
    INSERT INTO INSERZIONE
    VALUES 
    (
    NULL 'Olimpus E-510''Reflex digitale Olympus con sensore 10,1 MP stab ilizzato'200'2008-02-20'250'Fotografo84'11
    ); 
    e direi che funziona senza problemi!
    Quell'errore sta a significare che stai cercando di inserire N campi, quando invece la tabella è di soli M, ad esempio la tabella è composta da 5 campi e tu vuoi inserirne 8!
    Ricontrolla se non hai sbagliato qualcosa nella struttura del DB con il comando:
    Codice PHP:
    DESCRIBE INSERZIONE

  9. #9
    Originariamente inviato da D4rkAng3l
    RAGAZZI non funziona...ho provato ad impostare quei due campi come decimal(10,2) ma ancora dà lo stesso errore:

    mysql> insert into INSERZIONE values
    -> (NULL, 'Olimpus E-510', 'Reflex digitale Olympus con sensore 10,1 MP stab
    ilizzato', 200, '2008-02-20', 250, 'Fotografo84', 11);
    ERROR 1136 (21S01): Column count doesn't match value count at row 1
    mysql>

    Che può essere?
    chissa' che hai fatto con alter table..... in pratica non corrisponde il numero dei campi presenti in tabella con il numero dei valori inseriti....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643
    risolto...grazie mille....si chissà che ho fatto...è da questa mattina che stò davanti al PC...stò svalvolando ormai...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.