+ Rispondi alla Discussione
Risultati da 1 a 11 di 11

Aiuto codice Column count doesn't match value count at row 1

Ultimo Messaggio di PaTeR il:
  1. #1
    User
    Data Registrazione
    Jan 2009
    Messaggi
    31

    Aiuto codice Column count doesn't match value count at row 1

    Salve a tutti,
    è da giorni che sto litigando con questo codice php per l'inserimento dei dati in un database mysql. Mi potete aiutare? Grazie
    L'errore che ricevo è che al momento di premere salva mi esce questo: Column count doesn't match value count at row 1

    Codice:
    <form method="post" action="">
    <?php
    $campo=array();
    $campo[]=array("type"=>"text","nome"=>"username");
    $campo[]=array("type"=>"text","nome"=>"data");
    $campo[]=array("type"=>"text","nome"=>"ora");
    $campo[]=array("type"=>"bool","nome"=>"campo1");
    $campo[]=array("type"=>"bool","nome"=>"campo2");
    $campo[]=array("type"=>"bool","nome"=>"campo3");
    $campo[]=array("type"=>"bool","nome"=>"campo4");
    $campo[]=array("type"=>"bool","nome"=>"campo5");
    $campo[]=array("type"=>"bool","nome"=>"campo6");
    $campo[]=array("type"=>"bool","nome"=>"campo7");
    $campo[]=array("type"=>"bool","nome"=>"campo8");
    $campo[]=array("type"=>"bool","nome"=>"campo9");
    $campo[]=array("type"=>"bool","nome"=>"campo10");
    $campo[]=array("type"=>"bool","nome"=>"campo11");
    $campo[]=array("type"=>"bool","nome"=>"campo12");
    $campo[]=array("type"=>"bool","nome"=>"campo13");
    $campo[]=array("type"=>"bool","nome"=>"campo14");
    $campo[]=array("type"=>"bool","nome"=>"campo15");
    $campo[]=array("type"=>"bool","nome"=>"campo16");
    $campo[]=array("type"=>"bool","nome"=>"campo17");
    $campo[]=array("type"=>"text","nome"=>"puntiatt");
    $campo[]=array("type"=>"text","nome"=>"puntiottenuti");
    
    foreach($campo as $k => $v){
        switch($v['type']){
            case "text":
                echo '<b>' . $v['nome'] . ':</b><input type="text" name="' . $v['nome'] . '" /><br/>';
            break;
            case "bool":
                echo '<b>' . $v['nome'] . ':</b><input type="checkbox" name="' . $v['nome'] . '" value="1" /><br/>';
            break;
            default:
                echo '<b>' . $v['nome'] . ':</b><input type="text" name="' . $v['nome'] . '" /><br/>';
            break;
        }
    }
    
    if(isset($_POST)){
         $server="****";
         $user="***";
         $pass="***"; 
         $db="**";
         $tabella="punti";
         $link=mysql_connect($server,$user,$pass)or die(mysql_error());
         $sel_db=mysql_select_db($db,$link)or die(mysql_error());
         $query="INSERT INTO $tabella VALUES(";
         $i=0;
         foreach($_POST as $k => $v){
              $v=htmlspecialchars($v);
              if($i==0){
                  $query.="'" . $v . "'";
              }else{
                  $query.=",'" . $v . "'";
              }
              $i++;
         }
         $query.=")";
         $exec=mysql_query($query,$link)or die(mysql_error());
         mysql_close($link);
         
    }
    ?>
    <input type="submit" value="Salva" />
    </form>

  2. #2
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Ciao webmatsolution,

    fai un echo della query, e prova a vedere cosa va ad eseguire.

  3. #3
    User
    Data Registrazione
    Jan 2009
    Messaggi
    31
    Saresti cosi gentile da postarmi il codice?

    Grazie

  4. #4
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Codice PHP:
    <form method="post" action="">
    <?php
    $campo
    =array();
    $campo[]=array("type"=>"text","nome"=>"username");
    $campo[]=array("type"=>"text","nome"=>"data");
    $campo[]=array("type"=>"text","nome"=>"ora");
    $campo[]=array("type"=>"bool","nome"=>"campo1");
    $campo[]=array("type"=>"bool","nome"=>"campo2");
    $campo[]=array("type"=>"bool","nome"=>"campo3");
    $campo[]=array("type"=>"bool","nome"=>"campo4");
    $campo[]=array("type"=>"bool","nome"=>"campo5");
    $campo[]=array("type"=>"bool","nome"=>"campo6");
    $campo[]=array("type"=>"bool","nome"=>"campo7");
    $campo[]=array("type"=>"bool","nome"=>"campo8");
    $campo[]=array("type"=>"bool","nome"=>"campo9");
    $campo[]=array("type"=>"bool","nome"=>"campo10");
    $campo[]=array("type"=>"bool","nome"=>"campo11");
    $campo[]=array("type"=>"bool","nome"=>"campo12");
    $campo[]=array("type"=>"bool","nome"=>"campo13");
    $campo[]=array("type"=>"bool","nome"=>"campo14");
    $campo[]=array("type"=>"bool","nome"=>"campo15");
    $campo[]=array("type"=>"bool","nome"=>"campo16");
    $campo[]=array("type"=>"bool","nome"=>"campo17");
    $campo[]=array("type"=>"text","nome"=>"puntiatt");
    $campo[]=array("type"=>"text","nome"=>"puntiottenuti");

    foreach(
    $campo as $k => $v){
        switch(
    $v['type']){
            case 
    "text":
                 echo 
    '<b>' $v['nome'] . ':</b><input type="text" name="' $v['nome'] . '" /><br/>';
            break;
            case 
    "bool":
                 echo 
    '<b>' $v['nome'] . ':</b><input type="checkbox" name="' $v['nome'] . '" value="1" /><br/>';
            break;
            default:
                 echo 
    '<b>' $v['nome'] . ':</b><input type="text" name="' $v['nome'] . '" /><br/>';
            break;
        }
    }

    if(isset(
    $_POST)){
         
    $server="****";
         
    $user="***";
         
    $pass="***"
         
    $db="**";
         
    $tabella="punti";
         
    $link=mysql_connect($server,$user,$pass)or die(mysql_error());
         
    $sel_db=mysql_select_db($db,$link)or die(mysql_error());
         
    $query="INSERT INTO $tabella VALUES(";
         
    $i=0;
         foreach(
    $_POST as $k => $v){
              
    $v=htmlspecialchars($v);
              if(
    $i==0){
                  
    $query.="'" $v "'";
              }else{
                  
    $query.=",'" $v "'";
              }
              
    $i++;
         }
         
    $query.=")";
    echo 
    $query;
         
    $exec=mysql_query($query,$link)or die(mysql_error());
          
    mysql_close($link);
         
    }
    ?>
    <input type="submit" value="Salva" />
    </form>

  5. #5
    User
    Data Registrazione
    Jan 2009
    Messaggi
    31
    Grazie 1000 molto gentile per il codice.
    ho inserito facendo questa prova:
    username ho messo matteo
    data ho messo 23/09/2009
    ora ho messo 12.32
    ed ho selezionato il primo campo

    il risultato è questo
    Codice:
    INSERT INTO punti VALUES('matteo','23/09/2009','12.34','1','12','32')Column count doesn't match value count at row 1

  6. #6
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Bisognerebbe vedere la struttura della tabella.
    Conviene comunque strutturare la query in modo da specificare il value a quale campo si riferisce, sicuramente qualche campo è invertito rispetto alla struttura della tabella.
    Un esempio pratico di come dovrebbe venire è:
    Codice:
    INSERT INTO punti(nome, data, ora, campo1, campo2 ,campo3) VALUES('matteo','23/09/2009','12.34','1','12','32')

  7. #7
    User
    Data Registrazione
    Jan 2009
    Messaggi
    31
    Non ho ben capito cosa mettere in values. cioè non ho gia i campi

  8. #8
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Il values va bene così com'è, devi modificare la query in modo da essere come quella che ti ho postato io, perchè sicuramente hai invertito l'ordine di qualche campo non essendo specificati e quindi ottieni quell'errore.

  9. #9
    User
    Data Registrazione
    Jan 2009
    Messaggi
    31
    Scusa ma il php mi è nuovo :-) se riesci ed hai voglia visto che il mio assistente sara' assente per un po se riesci postarmi la query modificata mi faresti un grandissimo favore

  10. #10
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Località
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Dovresti postare la struttura della tabella.
    Senza quella non posso aiutarti più di cosi.

  11. #11
    User Attivo
    Data Registrazione
    Nov 2004
    Località
    Catania
    Messaggi
    1,153
    Se usi phpmyadmin ti basta accedere al tuo database e vedere la struttura della tabella 'punti'.

    Per una migliore flessibilità ti consiglio anch'io di utilizzare i nomi dei campi invece che riempire ordinatamente tutti i campi, tuttavia ciò non è indispensabile, e se ti fai una lista ordinata dei campi della tabella ti basta anche solo inserire i valori alle rispettive posizioni.

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.