Помогите со скриптом

ArkDoom

Новичок
Помогите со скриптом

Доброго вечера) У меня проблема с работой скрипта.

Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4;
Версия MySQL-клиента: 5.0.45
PHP расширение: mysql

Вот часть кода php:


PHP:
$query = "INSERT INTO ".$userstable." (direction, tape, country, Mkad, ground, area, price, owner, form, fanced, heightoffence, development, addbuilds, year, foundation, materialwalls, ceilings, roof, windows, homefinish, homefinishin, electricity, gas, heating, plumbing, sewerage, telephone, entrance, road, roadprice, roaduse, buildtape, landcategory, security, infrastructure, nature, transport, neighbors, comments, sellername, sellerprice, bargaining, contactphone, sozdal) VALUES ('".$_POST['direction']."', '".$_POST['tape']."', '".$_POST['country']."', '".$_POST['Mkad']."', '".$_POST['ground']."', '".$_POST['area']."', '".$_POST['cost']." ".$_POST['currency']."', '".$_POST['form']."', '".$_POST['fanced']."', '".$_POST['heightoffence']."', '".$_POST['development_1']." ".$_POST['development_2']." ".$_POST['development_3']." ".$_POST['development_4']."', '".$_POST['addbuilds_1']." ".$_POST['addbuilds_2']." ".$_POST['addbuilds_3']." ".$_POST['addbuilds_4']." ".$_POST['addbuilds_5']." ".$_POST['addbuilds_6']."', '".$_POST['foundation']."', '".$_POST['materialwalls']."', '".$_POST['ceilings']."', '".$_POST['roof']."', '".$_POST['windows']."', '".$_POST['homefinish']."', '".$_POST['homefinishin']."', '".$_POST['electricity']."', '".$_POST['gas']." ".$_POST['gasbuild']."', '".$_POST['heating']." ".$_POST['marka']."', '".$_POST['plumbing']."', '".$_POST['sewerage']."', '".$_POST['telephone']." ".$_POST['phoneprice']."', '".$_POST['entrance']." ".$_POST['size_1']." ".$_POST['size_2']." ".$_POST['size_3']." ".$_POST['size_4']."', '".$_POST['entranceanother']."', '".$_POST['road']."', '".$_POST['roadprice']."', '".$_POST['roaduse']."', '".$_POST['buildtape']."', '".$_POST['security']." ".$_POST['securityanother']."', '".$_POST['infrastructure_1']." ".$_POST['metrov_1']." ".$_POST['infrastructure_2']." ".$_POST['metrov_2']." ".$_POST['infrastructure_3']." ".$_POST['metrov_3']." ".$_POST['infrastructure_4']." ".$_POST['metrov_4']." ".$_POST['infrastructure_5']." ".$_POST['metrov_5']." ".$_POST['infrastructure_6']." ".$_POST['metrov_6']." ".$_POST['infrastructure_7']." ".$_POST['metrov_7']."', '".$_POST['nature_1']." ".$_POST['naturemet_1']." ".$_POST['nature_2']." ".$_POST['naturemet_2']." ".$_POST['nature_3']." ".$_POST['naturemet_3']."', '".$_POST['neighbors_1']." ".$_POST['neighbors_2']." ".$_POST['neighbors_3']." ".$_POST['neighbors_4']." ".$_POST['neighborscomments']."', '".$_POST['comments']."', '".$_POST['sellername']."', '".$_POST['sellerprice']." ".$_POST['currency_2']."', '".$_POST['bargaining']."', '".$_POST['contactphone_1']." ".$_POST['contactphone_2']."', '".$_COOKIE['login']."')";
Структура таблицы MySQL:
Поле Тип Сравнение Атрибуты Null По умолчанию
direction varchar(225) cp1251_general_ci Да NULL
tape varchar(225) cp1250_general_ci Да NULL
country varchar(225) cp1251_general_ci Да NULL
Mkad varchar(225) cp1251_general_ci Да NULL
ground varchar(225) cp1251_general_ci Да NULL
area varchar(225) cp1251_general_ci Да NULL
price varchar(225) cp1251_general_ci Да NULL
owner varchar(225) cp1251_general_ci Да NULL
form varchar(225) cp1251_general_ci Да NULL
fanced varchar(225) cp1251_general_ci Да NULL
heightoffence varchar(225) cp1251_general_ci Да NULL
development varchar(225) cp1251_general_ci Да NULL
addbuilds varchar(225) cp1251_general_ci Да NULL
year varchar(225) cp1251_general_ci Да NULL
foundation varchar(225) cp1251_general_ci Да NULL
materialwalls varchar(225) cp1251_general_ci Да NULL
ceilings varchar(225) cp1251_general_ci Да NULL
roof varchar(225) cp1251_general_ci Да NULL
windows varchar(225) cp1251_general_ci Да NULL
homefinish varchar(225) cp1251_general_ci Да NULL
homefinishin varchar(225) cp1251_general_ci Да NULL
electricity varchar(225) cp1251_general_ci Да NULL
gas varchar(225) cp1251_general_ci Да NULL
heating varchar(225) cp1251_general_ci Да NULL
plumbing varchar(225) cp1251_general_ci Да NULL
sewerage varchar(225) cp1251_general_ci Да NULL
telephone varchar(225) cp1251_general_ci Да NULL
entrance varchar(225) cp1251_general_ci Да NULL
road varchar(225) cp1251_general_ci Да NULL
roadprice varchar(225) cp1251_general_ci Да NULL
roaduse varchar(225) cp1251_general_ci Да NULL
buildtape varchar(225) cp1251_general_ci Да NULL
landcategory varchar(225) cp1251_general_ci Да NULL
security varchar(225) cp1251_general_ci Да NULL
infrastructure varchar(225) cp1251_general_ci Да NULL
nature varchar(225) cp1251_general_ci Да NULL
transport varchar(225) cp1251_general_ci Да NULL
neighbors varchar(225) cp1251_general_ci Да NULL
comments varchar(225) cp1251_general_ci Да NULL
sellername varchar(225) cp1251_general_ci Да NULL
sellerprice varchar(225) cp1251_general_ci Да NULL
bargaining varchar(225) cp1251_general_ci Да NULL
contactphone varchar(225) cp1251_general_ci Да NULL
sozdal int(15) Да NULL
_____________________________________________________________________

Вот ошибка mysql: Column count doesn't match value count at row 1

______________________________________________________________________

Но, проблема в чем. Я просчитывал строки, все вроде верно...может где ошибка в php?? Ребят, выручайте!)))

-~{}~ 07.11.09 00:39:

Там где код типа такого
PHP:
'".$_POST['addbuilds_1']." ".$_POST['addbuilds_2']." ".$_POST['addbuilds_3']." ".$_POST['addbuilds_4']." ".$_POST['addbuilds_5']." ".$_POST['addbuilds_6']."'
Я хотел сделать такую вещь, что когда человек вносит данные при помощи html (т.е. галочками в таблице выбирает то что нужно) в скрип отсылаются переменные 1 или 2 или 3. И скрипт, исходя из того какая переменная не пустая, заносит ее в базу
 

baev

‹°°¬•
Команда форума
ArkDoom, Вы явно по ссылке сходить не удосужились.
 

ArkDoom

Новичок
Уважаемый baev, я сразу же перешел по ссылке и прочитал что там написанно!

Но я выложил mysqlerror(Column count doesn't match value count at row 1)

Выложил скрипт запроса. Что еще нада, подскажите?
 

baev

‹°°¬•
Команда форума
2. При проблемах с MySQL (supplied argument is not a valid MySQL result resource) под строкой, где произошла ошибка, обязательно надо вывести на экран mysql_error() и сам запрос - для визуального контроля и копирования на форум. повторяю - вывести надо ЗАПРОС! А не PHP-код, который его формирует.
— какое слово не понятно?
 

ArkDoom

Новичок
Ну вот, я в SQL ввел "INSERT INTO zagorod (direction, tape, country, Mkad, ground, area, price, owner, form, fanced, heightoffence, development, addbuilds, yearb, foundation, materialwalls, ceilings, roof, windows,...."

Выдал ошибку
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '".$userstable." (direction, tape, country, Mkad, ground, area, price, owner, for' at line 1

-~{}~ 07.11.09 20:45:

Если ввожу так (разделяя Enterом)

INSERT INTO
zagorod
(direction, tape, country, Mkad, ground, area, price, owner, form, fanced, heightoffence, development, addbuilds, yearb, foundation, materialwalls, ceilings, roof, windows, homefinish, homefinishin, electricity, gas, heating, plumbing, sewerage, telephone, entrance, road, roadprice, roaduse, buildtape, landcategory, security, infrastructure, nature, transport, neighbors, comments, sellername, sellerprice, bargaining, contactphone, sozdal)
VALUES
('".$_POST['direction']."', '".$_POST['tape']."', '".$_POST['country']."', '".$_POST['Mkad']."', '".$_POST['ground']."', '".$_POST['area']."', '".$_POST['cost']." ".$_POST['currency']."', '".$_POST['form']."', '".$_POST['fanced']."', '".$_POST['heightoffence']."', '".$_POST['development_1']." ".$_POST['development_2']." ".$_POST['development_3']." ".$_POST['development_4']."', '".$_POST['addbuilds_1']." ".$_POST['addbuilds_2']." ".$_POST['addbuilds_3']." ".$_POST['addbuilds_4']." ".$_POST['addbuilds_5']." ".$_POST['a[...]

Пишет #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'direction']."', '".$_POST['tape']."', '".$_POST['country']."', '".$_POST['Mkad']' at line 5
 

Фанат

oncle terrible
Команда форума
пойду сам почитаю по ссылке.
может, там неясно написано?

-~{}~ 07.11.09 20:49:

да нет, вроде, по-русски написано.
ArkDoom, а что в запросе делают слова
$_POST, country?

-~{}~ 07.11.09 20:49:

я правильно понимаю, что вы SQL запроса никогда в жизни не видели?
 

ArkDoom

Новичок
Уважаемые, я походу реально чего-то не догоняю!
Я даже скачал MyPhpAdmin и там на русском и английском написано

Выполнить SQL-запрос(ы) к базе данных AgentVN.


Я похоже просто очень сильно запутался, помогите советом...а точнее чуток поточнее объясните как именно я должен сделать запрос?
 

Beavis

Banned
ArkDoom
и ты в phpMyAdmin пишешь такие вещи как $_POST ?
ты вообще понимаешь что такое PHP и что такое SQL ?
 

ArkDoom

Новичок
Умылся, очнулся.......(пару дней не спал) =))) вспомнил где я и что я))

INSERT INTO zagorod (direction, tape, country, Mkad, ground, area, price, owner, form, fanced, heightoffence, development, addbuilds, yearbuild, foundation, materialwalls, ceilings, roof, windows, homefinish, homefinishin, electricity, gas, heating, plumbing, sewerage, telephone, entrance, road, roadprice, roaduse, buildtape, landcategory, securityt, infrastructure, nature, transport, neighbors, comments, sellername, sellerprice, bargaining, contactphone, sozdal) VALUES ('direction', 'tape', 'country', 'Mkad', 'ground', 'area', 'price', 'owner', 'form', 'fanced', 'heightoffence', 'development', 'addbuilds', 'year', 'foundation', 'materialwalls', 'ceilings', 'roof', 'windows', 'homefinish', 'homefinishin', 'electricity', 'gas', 'heating', 'plumbing', 'sewerage', 'telephone', 'entrance', 'road', 'roadprice', 'roaduse', 'buildtape', 'landcategory', 'security', 'infrastructure', 'nature', 'transport', 'neighbors', 'comments', 'sellername', 'sellerprice', 'bargaining', 'contactphone', 'sozdal')

Все удачно и нормально добавляеться! Значит ошибка в Php.....

Может сделать так:
'".$_POST['development_1']." ".$_POST['development_2']." ".$_POST['development_3']." ".$_POST['development_4']."

Вынести это всю в 1 перемнную ? типа
$development = $sdevelopment_1." ".$sdevelopment_2." ".$development_3." ".$development_4." ".$development_5." ".$development_1;
 

Фанат

oncle terrible
Команда форума
без разницы
главное, чтобы в итоге получилось то, что выше написано.

просто сидеть и тупо тренироваться писать скрипт, который выводит запрос.
как только получился - отправлять его в базу.
 

ArkDoom

Новичок
Ну вот, я написал скрипт

PHP:
$query = "INSERT INTO ".$userstable." (direction, tape, country, Mkad, ground, area, price, owner, form, fanced, heightoffence, development, addbuilds, year, foundation, materialwalls, ceilings, roof, windows, homefinish, homefinishin, electricity, gas, heating, plumbing, sewerage, telephone, entrance, road, roadprice, roaduse, buildtape, landcategory, security, infrastructure, nature, transport, neighbors, comments, sellername, sellerprice, bargaining, contactphone, sozdal) VALUES ('".$_POST['direction']."', '".$_POST['tape']."', '".$_POST['country']."', '".$_POST['Mkad']."', '".$_POST['ground']."', '".$_POST['area']."', '".$_POST['cost']." ".$_POST['currency']."', '".$_POST['form']."', '".$_POST['fanced']."', '".$_POST['heightoffence']."', '".$_POST['development_1']." ".$_POST['development_2']." ".$_POST['development_3']." ".$_POST['development_4']."', '".$_POST['addbuilds_1']." ".$_POST['addbuilds_2']." ".$_POST['addbuilds_3']." ".$_POST['addbuilds_4']." ".$_POST['addbuilds_5']." ".$_POST['addbuilds_6']."', '".$_POST['foundation']."', '".$_POST['materialwalls']."', '".$_POST['ceilings']."', '".$_POST['roof']."', '".$_POST['windows']."', '".$_POST['homefinish']."', '".$_POST['homefinishin']."', '".$_POST['electricity']."', '".$_POST['gas']." ".$_POST['gasbuild']."', '".$_POST['heating']." ".$_POST['marka']."', '".$_POST['plumbing']."', '".$_POST['sewerage']."', '".$_POST['telephone']." ".$_POST['phoneprice']."', '".$_POST['entrance']." ".$_POST['size_1']." ".$_POST['size_2']." ".$_POST['size_3']." ".$_POST['size_4']."', '".$_POST['entranceanother']."', '".$_POST['road']."', '".$_POST['roadprice']."', '".$_POST['roaduse']."', '".$_POST['buildtape']."', '".$_POST['security']." ".$_POST['securityanother']."', '".$_POST['infrastructure_1']." ".$_POST['metrov_1']." ".$_POST['infrastructure_2']." ".$_POST['metrov_2']." ".$_POST['infrastructure_3']." ".$_POST['metrov_3']." ".$_POST['infrastructure_4']." ".$_POST['metrov_4']." ".$_POST['infrastructure_5']." ".$_POST['metrov_5']." ".$_POST['infrastructure_6']." ".$_POST['metrov_6']." ".$_POST['infrastructure_7']." ".$_POST['metrov_7']."', '".$_POST['nature_1']." ".$_POST['naturemet_1']." ".$_POST['nature_2']." ".$_POST['naturemet_2']." ".$_POST['nature_3']." ".$_POST['naturemet_3']."', '".$_POST['neighbors_1']." ".$_POST['neighbors_2']." ".$_POST['neighbors_3']." ".$_POST['neighbors_4']." ".$_POST['neighborscomments']."', '".$_POST['comments']."', '".$_POST['sellername']."', '".$_POST['sellerprice']." ".$_POST['currency_2']."', '".$_POST['bargaining']."', '".$_POST['contactphone_1']." ".$_POST['contactphone_2']."', '".$_COOKIE['login']."')";
Переменные он получает абсолютно нормально, в чем может быть проблема хотя-бы примерно?
Почему на этот скрипт, php выводит ошибку
Column count doesn't match value count at row 1???

Просто у вас огромное количество опыта, а я уже дня 4 с этим скриптом сижу....
 

dr-sm

Новичок
действуй так, ато поломаешь мосг :) :

PHP:
$query = 'insert into '. $userstable . ' set ' .
	'direction = "' 	. $_POST['direction'] 	. '", ' ,
	'tape = "' 			. $_POST['tape'] 		. '", ' ,
	'country = "'		. $_POST['country'] 	. '", ' .
	'Mkad = "' 			. $_POST['Mkad'] 		. '", ' ,
	'ground = ' 		. $_POST['ground'] 		. '", ' .
'...';
только вот это прочитай сначала http://phpfaq.ru/slashes
 

ArkDoom

Новичок
Спасибо тебе! Хоть 1 человек толково и грамотно ответил ))))

Выручил)))
 

Фанат

oncle terrible
Команда форума
Действительно. полем больше в базе, полем больше. Подумаешь - одно не запишется. Их там дофига, никто и не заметит
 

ArkDoom

Новичок
*****, ты конечно прав! Но, понимаешь в чем дело, как обьяснил dr-sm, я сразу разобрался и все понял.

Я же писал, что не спал много суток и все такое и вообще путался в такой чуши.

Я потом посчитал свой скрип, и разобрался, реально тупо стррок не хватало.


Хотя я и тебя понимаю, тебе уже 100% чуток поднадоело повторять одно и тоже таким как я )
 
Сверху