Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переменные, форма и сессии
 
 автор: Dizels   (17.10.2007 в 12:44)   письмо автору
 
 

Вот файл:

<?php 
include("../users/index.php");
// Устанавливаем соединение с БД
require_once("../admin/config.php");
// Проверяем, не вводил ли информацию о себе пользователь ранее.
$query "SELECT * FROM user_info WHERE id_users = '$id'";
$usr mysql_query($query);
$info mysql_fetch_array($usr);

$login=$info['login'];
$pol=$info['pol'];
$bithday=$info['bithday'];
$dev_surname=$info['dev_surname'];
$otchestvo=$info['otchestvo'];
$bithday_sity=$info['bithday_sity'];
$fam_statys=$info['fam_statys'];
$dopolnitelno=$info['dopolnitelno'];
?>
<form method="post">
<table border="0">
<tr>
<td colspan="2"><b>Персональные данные:</b></td>
</tr>
<tr>
<td>Логин:</td>
<td><input type="text" name="login" size="30" value= <?php echo "$login"?> ></td>
</tr>
<tr>
<td>Фамилия:</td>
<td><input type="text" name="surname" size="30" value= <?php echo "$surname"?> ></td>
</tr>
<tr>
<td>Имя:</td>
<td><input type="text" name="name" size="30" value= <?php echo "$name"?> ></td>
</tr>
<tr>
<td>Пол:</td>
<td>
<input type="radio" name="pol" onChange="dfamilia(1, this)">Муж   
<input type="radio" name="pol" onChange="dfamilia(2, this)" checked>Жен 
</td>
</tr>
<script> 
function dfamilia(which, obj) 

  obj.form.dsurname.disabled = !( 
    (which==1 && !obj.checked) || 
    (which==2 && obj.checked) 
  ); 

</script>
<tr>
  <td>Девичья фамилия:</td>
  <td><input type="text" name="dsurname" size="30" value= <?php echo "$dev_surname"?> ></td>
</tr>
<tr>
<td>Отчество:</td>
<td><input type="text" name="otchestvo" size="30" value= <?php echo "$otchestvo"?> ></td>
<tr>
<tr>
<td>Дата рождения :</td>
<td>
<?php
     
// Выпадающий список для дня
     
echo "<select class=input type=text name='date_day'>";
     for(
$i 1$i <= 31$i++)
     {
       if(
$date_day == $i$temp "selected";
       else 
$temp "";
       echo 
"<option value=$i $temp>".sprintf("%02d"$i);
     }
     echo 
"</select>";
     
// Выпадающий список для месяца
?>
<select name =date_month>
<option value=1>Январь (01)</option>
<option value=2>Февраль (02)</option>
<option value=3>Март (03)</option>
<option value=4>Апрель (04)</option>
<option value=5>Май (05)</option>
<option value=6>Июнь (06)</option>
<option value=7>Июль (07)</option>
<option value=8>Август (08)</option>
<option value=9>Сентябрь (09)</option>
<option value=10>Октябрь (10)</option>
<option value=11>Ноябрь (11)</option>
<option value=12>Декабрь (12)</option>
<?php
     
// Выпадающий список для года
     
echo "<select class=input type=text name='date_year'>";
     for(
$i 1940$i <= 2010$i++)
     {
       if(
$date_year == $i$temp "selected";
       else 
$temp "";
       echo 
"<option value=$i $temp>$i";
     }
     echo 
"</select><br>";
?>
</td>
</tr>
<tr>
<td>Место рождения:</td>
<td><input type="text" name="bithday_sity" size="30" value= <?php echo "$bithday_sity"?> ></td>
<tr>
<tr>
<td>Семейное положение:</td>
<td>
<select name="fam_statys">
<option value="1">холост / не замужем</option>
<option value="2">женат / за мужем</option>
<option value="3">вдовец / вдова</option>
<option value="4">разведен / разведена</option>
</select>
</td>
</tr>
<tr>
<td>Дополнительно:</td>
<td><textarea name=dopolnitelno rows=10 cols=40 value= <?php echo "$dopolnitelno"?> ></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Сохранить"></td>
</tr>
</table>
</form>
<?php
// Обработчик php формы.
///////////////////////////////////////////
// Получаем данные
///////////////////////////////////////////
$login trim($_POST['login']); 
$surname trim($_POST['surname']);
$name trim($_POST['name']); 
$pol $_POST['pol']; 
$dsurname trim($_POST['dsurname']); 
$otchestvo trim($_POST['otchestvo']); 
$date_day $_POST['date_day']; 
$date_month $_POST['date_month']; 
$date_year $_POST['date_year']; 
$bithday $date_year."-".$date_month."-".$date_day;
$bithday_sity trim($_POST['bithday_sity']);
$fam_statys trim($_POST['fam_statys']); 
$dopolnitelno trim($_POST['dopolnitelno']); 
///////////////////////////////////////////
// Блок проверки правильности ввода данных
///////////////////////////////////////////
// Если на сервере не включены "магические кавычки",
// обрабатываем введенные пользователем данные
// функцией mysql_escape_string()
if (!get_magic_quotes_gpc())
{
    
$login mysql_escape_string($login);
    
$surname mysql_escape_string($surname);
    
$dsurname mysql_escape_string($dsurname);
    
$otchestvo mysql_escape_string($otchestvo);
    
$bithday_sity mysql_escape_string($bithday_sity);
    
$dopolnitelno mysql_escape_string($dopolnitelno);
}
////////////////////////////////////////////////
// Блок внесения информации о пользователе
////////////////////////////////////////////////
echo "$id<br>$login<br>$pol<br>$bithday<br>$dsurname<br>$otchestvo<br>$bithday_sity<br>$fam_statys<br>$dopolnitelno";
// Подключаемся к БД
require_once("../admin/config.php");
// Формируем и выполняем SQL-запрос на
// добавление информации о пользователе
$query "INSERT INTO user_info
    VALUES(NULL,
        '
$id',
        '
$login',
        '
$pol',
        '
$bithday',
        '
$dsurname',
        '
$otchestvo',
        '
$bithday_sity',
        '
$fam_statys',
        '
$dopolnitelno')";
if(
mysql_query($query))
{
  echo 
"<HTML><HEAD>
         <META HTTP-EQUIV='Refresh'
        CONTENT='0; URL=../users/index.php'>
        </HEAD></HTML>"
;
} else exit(
" Ошибка при добавлении информации о пользователе -".mysql_error());
?>


1) выводит ошибку: "Ошибка при добавлении информации о пользователе -Column count doesn't match value count at row 1"

   
 
 автор: mihdan   (17.10.2007 в 13:00)   письмо автору
 
   для: Dizels   (17.10.2007 в 12:44)
 


'$id' замени $id это же число !

   
 
 автор: bronenos   (17.10.2007 в 14:29)   письмо автору
 
   для: Dizels   (17.10.2007 в 12:44)
 

можно дамп?

   
 
 автор: Dizels   (17.10.2007 в 18:04)   письмо автору
 
   для: bronenos   (17.10.2007 в 14:29)
 


-- 
-- Структура таблицы `user_info`
-- 

CREATE TABLE `user_info` (
  `id_users` int(11) NOT NULL default '0',
  `login` tinytext NOT NULL,
  `pol` char(3) NOT NULL default '',
  `bithday` date NOT NULL default '0000-00-00',
  `dev_surname` tinytext NOT NULL,
  `otchestvo` tinytext NOT NULL,
  `bithday_sity` tinytext NOT NULL,
  `fam_statys` varchar(4) NOT NULL default '',
  `dopolnitelno` text NOT NULL,
  KEY `id_users` (`id_users`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

   
 
 автор: bronenos   (17.10.2007 в 18:26)   письмо автору
 
   для: Dizels   (17.10.2007 в 18:04)
 

$query = "INSERT INTO user_info 
    VALUES(NULL, 
        '$login', 
        '$pol', 
        '$bithday', 
        '$dsurname', 
        '$otchestvo', 
        '$bithday_sity', 
        '$fam_statys', 
        '$dopolnitelno'
    )";

   
 
 автор: Dizels   (17.10.2007 в 18:31)   письмо автору
 
   для: bronenos   (17.10.2007 в 18:26)
 

VALUES(NULL, в столбец id_users вносится цифра, по которой я потом идентифицирую пользователя из другой таблицы, так что там ну никак не NULL - там должена быть переменная $id. Но вот почему не работает? :(

   
 
 автор: bronenos   (17.10.2007 в 18:35)   письмо автору
 
   для: Dizels   (17.10.2007 в 18:31)
 

вы сделайте такой запрос, что я показал - ибо там значение вставяется само, чтоб не было повторных, а получить то, что вставилось в это поле можно с помощью
mysql_insert_id(db_connection);

   
 
 автор: mihdan   (18.10.2007 в 13:23)   письмо автору
 
   для: Dizels   (17.10.2007 в 18:31)
 

id_user - уникальным, автоинкрементом сделайте. Если будет так, то NULL - верно

   
 
 автор: bronenos   (18.10.2007 в 14:18)   письмо автору
 
   для: mihdan   (18.10.2007 в 13:23)
 

тьфу мля, я думал он итак сделал как надо, понадеялся, а оказывается у него еще и тут ошибка..

   
 
 автор: mihdan   (18.10.2007 в 19:12)   письмо автору
 
   для: bronenos   (18.10.2007 в 14:18)
 

Да да

   
 
 автор: Dizels   (18.10.2007 в 20:16)   письмо автору
 
   для: mihdan   (18.10.2007 в 19:12)
 

Да блин - мне не нужно его делать автоинкрементом, так как у меня есть еще таблица users в которой тоже есть поле id_user и вот оно автоинкремент и соединяю я эти 2 таблицы именно по этому полю!
Впринципе ошибку я нашел, там получалось, что я на 1 данное больше передовал, так что спс.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования