Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   phpmyadmin что с ним делать.. (http://forum.oszone.net/showthread.php?t=31111)

FADE 02-07-2004 01:52 213324

создал базу hcd через phpmyadmin? создал таблицу nav в параметре "поле" написал vname
в параметре "тип" text
после выполнения скрипта в браузере появляется надпись:

Column count doesn't match value count at row 1

вот скрипт:

Код:

<?php

$hostname = "web";
$username = "root";
$password = "";
$dbName = "hcd";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "nav";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");

/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";
echo "Привет, ".$_POST['name'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Вас интересуют ".$_POST['preference'].". Информацию о них мы пошлем вам на email: ".$_POST['email'];
echo "</CENTER>";

/* составить запрос для вставки информации о клиенте в таблицу */

$vname=$_POST['name'];
$email=$_POST['email'];
$preference=$_POST['preference'];

$query = "INSERT INTO $userstable VALUES('$vname','$email', '$preference')";

/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
mysql_close();

?>

что это значит?
как записать туда эти значения?

П. С.,
научился поиском пользоваться (см. статью http://forum.oszone.net/topic.cgi?fo...&topic=747 ), но не помогает((..

[s]Исправлено: FADE, 1:57 2-07-2004[/s]

Prisoner 02-07-2004 16:48 213325

Как я понял, в табличке создано лишь одно поле, а вставляете вы исходя из соображения трех столбцов. к тому же есть синтаксис команды insert более удобный чем вы используете:
Цитата:

Цитата INSERT, синтаксис команды
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
       [INTO] tbl_name [(col_name,...)]
       VALUES (expression,...),(...),...
или INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
       [INTO] tbl_name [(col_name,...)]
       SELECT ...
или INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
       [INTO] tbl_name
       SET col_name=expression, col_name=expression, ...

Видите первый вариант? Там после имени таблички перечислены поля в которые будут подставляться значения из списка VALUES в том же порядке как они перечисленны после имени таблицы. Это удобнее т.к. можно менять порядок столбцов и что-либо вообще не указывать.

З.Ы. на счет поиска... это вы отметились о приобщении к пользователям гугля? :) Поздравляю конечно, но...

FADE 03-07-2004 02:25 213326

Prisoner
а можно поподробней с моими значениями?... не могу разобраться никак...


Время: 14:34.

Время: 14:34.
© OSzone.net 2001-