Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804

    query che da messaggio d errore

    buon giorno ragazi , io ho 4 campi d 'input radio che hanno lo stesso nome ,ed inviano il valore 1
    valore 2
    valore 3
    valore 4

    adesso mi esce scritto un errore che sarebbe
    3non è stato inserito per motivi tecnici: Incorrect integer value: '' for column 'tiposped' at row 1Esito per
    il codice php e questo un banalissimo inserimento di dati nel db
    ma non sto capendo il motivo dell 'errore
    Codice PHP:
    if(!isset($_POST['op'])){$op="";}else{$op $_POST['op'];}
    if(!isset(
    $_POST['prezzo0'])){$prezzo0="";}else{$prezzo0 $_POST['prezzo0'];}
    if(!isset(
    $_POST['prezzo3'])){$prezzo3="";}else{$prezzo3 $_POST['prezzo3'];}
    if(!isset(
    $_POST['prezzo4'])){$prezzo4="";}else{$prezzo4 $_POST['prezzo4'];}
    if(!isset(
    $_POST['perc2'])){$percentuale="";}else{$percentuale $_POST['perc2'];}
    if(!isset(
    $_POST['tiposped'])){$tipo="";}else{$tipo intval($_POST['tiposped']);}
    if(!isset(
    $_POST['descrizione'])){$descrizione="";}else{$descrizione $_POST['descrizione'];}
    if(!isset(
    $_POST['max3'])){$peso="";}else{$peso $_POST['max3'];}
    if(!isset(
    $_POST['max4'])){$pezzi="";}else{$pezzi $_POST['max4'];}
    if(!isset(
    $_POST['contrassegno'])){$iscontrass=0;}else{$iscontrass intval($_POST['contrassegno'])?1:0;}
    if(!isset(
    $_POST['importo'])){$limspese="";}else{$limspese $_POST['importo'];}
    if(!isset(
    $_POST['spedsep'])){$tiposped="";}else{$tiposped $_POST['spedsep'];}
    if(!isset(
    $_POST['nome'])){$compagnia="";}else{$compagnia $_POST['nome'];}

    if(isset(
    $_POST['op'])=="ins"){

    echo 
    $tipo;
        
    $obj->connessione();
    $dati mysql_query("INSERT INTO spedizioni(
    id,
    tipo,
    compagnia,
    prezzo,
    iscontrass,
    limspese,
    tiposped,
    descrizione
    ) VALUES (
    NULL,
    '
    $tipo',
    '
    $compagnia',
    '
    $prezzo0',
    '
    $iscontrass',
    '
    $limspese',
    '
    $tiposped',
    '
    $descrizione'
    )"
    );
     if(
    $dati){
               echo 
    "inserito correttamente";
               }
               else 
               {
               echo 
    "non è stato inserito per motivi tecnici: ".mysql_error();
                }


    SECONDO VOI DOVE STO TOPPANDO
    grazie ragazzi ciao
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  2. #2
    sembra che il campo "tiposped" sia numerico. Prova a sostituire il valore di default che inserisci, cioe' metti 0 al posto delle apici '':

    codice:
    if(!isset($_POST['spedsep'])) { 
         $tiposped = 0; 
         } else { $tiposped = $_POST['spedsep'];  }

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

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    ciao piero si sono tre campi d input ceck box

    che anno tutti e tre lo stesso nome con diverso valore

    i valori sono 0 ,2, 3
    posto lo script cosi com e perche e un lvoro che non ho fatto io ma lo sto ricorreggendo
    Codice PHP:
    if(!isset($_POST['op'])){$op="";}else{$op $_POST['op'];}
    if(!isset(
    $_POST['prezzo0'])){$prezzo0="";}else{$prezzo0 $_POST['prezzo0'];}
    if(!isset(
    $_POST['prezzo3'])){$prezzo3="";}else{$prezzo3 $_POST['prezzo3'];}
    if(!isset(
    $_POST['prezzo4'])){$prezzo4="";}else{$prezzo4 $_POST['prezzo4'];}
    if(!isset(
    $_POST['perc2'])){$percentuale="";}else{$percentuale $_POST['perc2'];}
    if(!isset(
    $_POST['tiposped'])){$tipo="";}else{$tipo intval($_POST['tiposped']);}
    if(!isset(
    $_POST['descrizione'])){$descrizione="";}else{$descrizione $_POST['descrizione'];}
    if(!isset(
    $_POST['max3'])){$peso="";}else{$peso $_POST['max3'];}
    if(!isset(
    $_POST['max4'])){$pezzi="";}else{$pezzi $_POST['max4'];}
    if(!isset(
    $_POST['contrassegno'])){$iscontrass=0;}else{$iscontrass intval($_POST['contrassegno'])?1:0;}
    if(!isset(
    $_POST['importo'])){$limspese="";}else{$limspese $_POST['importo'];}
    if(!isset(
    $_POST['spedsep'])){$tiposped="";}else{$tiposped $_POST['spedsep'];}
    if(!isset(
    $_POST['nome'])){$compagnia="";}else{$compagnia $_POST['nome'];}





    if(isset(
    $_POST['op'])=="ins"){


    echo 
    $tipo.$compagnia.$prezzo0.$iscontrass.$limspese.$tiposped;

    switch(
    $tipo){
    case 
    0:
        
    $obj->connessione();
    $dati mysql_query("INSERT INTO spedizioni(
    id,
    tipo,
    compagnia,
    prezzo,
    iscontrass,
    limspese,
    tiposped,
    descrizione
    ) VALUES (
    NULL,
    '
    $tipo',
    '
    $compagnia',
    '
    $prezzo0',
    '
    $iscontrass',
    '
    $limspese',
    '
    $tiposped',
    '
    $descrizione'
    )"
    );
     if(
    $dati){
               echo 
    "inserito correttamente";
               }
               else 
               {
               echo 
    "non è stato inserito per motivi tecnici: ".mysql_error();
                }


    break;
    case 
    2:
            
    $obj->connessione();
    $dati=mysql_query("INSERT INTO spedizioni(
    id,
    tipo,
    compagnia,
    percentuale,
    iscontrass,
    limspese,
    tiposped,
    descrizione
    ) VALUES (
    NULL,
    '2',
    '
    $compagnia',
    '
    $percentuale',
    '
    $iscontrass',
    '
    $limspese',
    '
    $tiposped',
    '
    $descrizione'
    )"
    );
     if(
    $dati){
               echo 
    "inserito correttamente";
               }
               else 
               {
               echo 
    "non è stato inserito per motivi tecnici: ".mysql_error();
                }
    break;

    case 
    3:
                
    $obj->connessione();
    $dati=mysql_query("INSERT INTO spedizioni(
    id,
    tipo,
    compagnia,
    prezzo,
    peso,
    iscontrass,
    limspese,
    tiposped,
    descrizione
    ) VALUES (
    NULL,
    '3',
    '
    $compagnia',
    '
    $prezzo3',
    '
    $peso',
    '
    $iscontrass',
    '
    $limspese',
    '
    $tiposped',
    '
    $descrizione'
    )"
    );


    }

    }

    echo
    "Esito per [b]$compagnia[/b] ";

    ?> 
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  4. #4
    Il problema potrebbe essere che il campo numerico della tabella nel db prevede un default numerico , cioe' 0, mentre se passi una variabile del tipo es.: $var = '' questa risulta essere una stringa. percio' l'errore che ricevi e': incorrect integer value.

    Evidentemente il settaggio della variabile di mysql SQL-MODE e' impostata in modo da non accettare valori diversi dal previsto.

    Non ti resta che sostituire con il valore "0" (zero) tutti i valori '' (empty) che hai negli switch ovviamente nei campi dove e' previsto un numero, oppure mettere un default 0 nei campi della check box

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

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    ciao piero e grazie comunque ho sostituito le stringhe in valori ma mi da sempre lo stesso problema
    Incorrect integer value: '' for column 'tiposped' at row 1Esito


    questo e la tabella del db

    CREATE TABLE `spedizioni` (
    `id` int(11) NOT NULL auto_increment,
    `compagnia` varchar(100) NOT NULL default '',
    `prezzo` varchar(30) NOT NULL default '',
    `tipo` int(11) NOT NULL default '1',
    `peso` int(11) NOT NULL default '0',
    `percentuale` int(11) NOT NULL default '0',
    `iscontrass` int(11) NOT NULL default '0',
    `limspese` varchar(10) NOT NULL default '',
    `tiposped` int(11) NOT NULL default '0',
    `kilopiu` varchar(10) NOT NULL default '',
    `descrizione` varchar(255) NOT NULL default '',
    `numero` int(11) NOT NULL default '0',
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;



    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  6. #6
    cerca sql-mode in questa pagina per capire di cosa si tratta:

    http://database.html.it/guide/lezion...e-di-mysql-ii/

    oltre a mettere 0 invece di '' empty, se numerico non ci vogliono le apici alla variabile qundo riferisci il valore nella query insert.

    quindi per tutti i valori della tabella citata che hanno il campo INT() non si devono mettere le apici... es.:

    Codice PHP:

    VALUES (
    NULL,
    $tipo,
    '$compagnia',
    '$prezzo0',
    $iscontrass,
    '$limspese',
    $tiposped,
    '$descrizione' 
    verifica tu, in modo meno approssimativo del mio, quali sono i valori numerici che metti in un campo INT

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

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    grazie piero.mac l ho risolto il problema avevo toppato io grazie
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    scusate ragazzi ma volevo chiedervi adesso mi esce un altro errore
    Data truncated for column 'sconto' at row 1
    cosa significa? dovrebbe inserire numeri piu %
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

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.