JantsoP
JantsoP

Reputation: 1

PHP and MySQL Error "Column count doesn't match value count at row 1"

So i am having this issue. The code is for art gallery calendar. The code has worked for this day but now it has broken down. I wrote it about 1-2 months ago and now they contacted me that something is wrong. Here is the code

<?php
require('config.php');

if(isset($_POST['lisaa_pvm'])) {
    $alkupvm        =   mysql_real_escape_string(strtotime(str_replace('/','-',$_POST['alkupvm'])));
    $loppupvm       =   mysql_real_escape_string(strtotime(str_replace('/','-',$_POST['loppupvm'])));   
    $muuta          =   mysql_real_escape_string($_POST['muuta']);

    $result         =   mysql_query("INSERT INTO kipina_kalenteri VALUES ('','$alkupvm','$loppupvm','','','','','$muuta')") or die (mysql_error());

    $tapahtuma_id   =   mysql_insert_id();

    header('location: lisaa_tapahtuma.php?tid='.$tapahtuma_id);
}

if(isset($_POST['lisaa_tapahtuma'])) {

    // siivotaan syötteet
    foreach ($_POST as $key => $value) {
        mysql_real_escape_string($value);
        ${"$key"} = $value; 
    }

    $url = ROOT.'/files/';

    if($_FILES['kuva1']['size'] > 0) {
        $target = $url . $_FILES['kuva1']['name']; 
        if(move_uploaded_file($_FILES['kuva1']['tmp_name'], $target)) {
                $kuva[] = "kuva_1 = '".basename( $_FILES['kuva1']['name'])."'";
        } else{
                echo "There was an error uploading the file ".$target.", please try again!<br>";
        }

    }

    if($_FILES['kuva2']['size'] > 0) {
        $target = $url . basename( $_FILES['kuva2']['name']); 
        if(move_uploaded_file($_FILES['kuva2']['tmp_name'], $target)) {
                $kuva[] = "kuva_2 = '".basename( $_FILES['kuva2']['name'])."'";
        } else{
                echo "There was an error uploading the file ".$target.", please try again!<br>";
        }

    }

    if($_FILES['kuva3']['size'] > 0) {
        $target = $url . basename( $_FILES['kuva3']['name']); 
        if(move_uploaded_file($_FILES['kuva3']['tmp_name'], $target)) {
                $kuva[] = "kuva_3 = '".basename( $_FILES['kuva3']['name'])."'";
        } else{
                echo "There was an error uploading the file ".$target.", please try again!<br>";
        }

    }

    if(isset($kuva)) {
        $kuvat = ", ".implode(',',$kuva);
    }

    if(isset($sama) AND $sama != '') {

        $update = "UPDATE kipina_kalenteri SET $paikka = $sama $kuvat WHERE id = $kalenteri";   
        mysql_query($update) or die (mysql_error());
        header('location: lisaa_tapahtuma.php?tid='.$kalenteri);

    } elseif(isset($update)) {

        $update = "UPDATE kipina_tapahtuma SET 
                                                        taiteilija = '$taiteilija',
                                                        nimi = '$nimi',
                                                        kuvaus = '$kuvaus',
                                                        kuvaus = '$lyhyt_kuvaus'
                                                        $kuvat
                                                        WHERE
                                                        id = $update";

        $result = mysql_query($update) or die (mysql_query());

        header('location: lisaa_tapahtuma.php?tid='.$kalenteri);

    } else {

        $insert = mysql_query("INSERT INTO kipina_tapahtuma VALUES ('','$taiteilija','$nimi','$lyhyt_kuvaus','$kuvaus','$kuva[0]','$kuva[1]','$kuva[2]')") or die (mysql_error());
        $tid    = mysql_insert_id();

        $update = mysql_query("UPDATE kipina_kalenteri SET $paikka = $tid WHERE id = $kalenteri") or die (mysql_error());

        header('location: lisaa_tapahtuma.php?tid='.$kalenteri);
    }

}

I hope i get answer soon

Upvotes: 0

Views: 809

Answers (2)

Mike
Mike

Reputation: 1231

It's about your table fields. Please define the table field before you start insert a data:

$result = mysql_query("INSERT INTO kipina_kalenteri (`field1`,`field2`,`field3`) VALUES ('$alkupvm','$loppupvm','$muuta')") or die (mysql_error());

so you can sure if the fields are matched with your data

Upvotes: 1

Elon Than
Elon Than

Reputation: 9765

Someone added or deleted one of the columns in table kipina_kalenteri or kipina_tapahtuma. Because of such situations it's better to always declare to which columns you want to insert.

So it should be like that:

  INSERT INTO table (`column1`, `column2`) VALUES ('values1', 'values2');

Upvotes: 1

Related Questions