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

Форум MySQL

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

 

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

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

тема: DATE - как в него записывать значения и потом их извлекать.
 
 автор: Dizels   (30.05.2008 в 19:27)   письмо автору
 
 

есть форма:
        <td>Дата:</td>
        <td>
            <?php
                
// Выпадающий список для дня
                
echo "<select class=input type=text name='e_day'>";
                for(
$i 1$i <= 31$i++)
                {
                    if(
$e_day == $i$temp "selected";
                    else 
$temp "";
                    echo 
"<option value=$i $temp>".sprintf("%02d"$i);
                }
                echo 
"</select>";
                
// Выпадающий список для месяца
            
?>
            <select name ='e_month'>
                <option value="января" <?php if($e_month == 'января') echo "selected"?> >Январь (01)</option>
                <option value="февраля" <?php if($e_month == 'февраля') echo "selected"?> >Февраль (02)</option>
                <option value="марта" <?php if($e_month == 'марта') echo "selected"?> >Март (03)</option>
                <option value="апреля" <?php if($e_month == 'апреля') echo "selected"?> >Апрель (04)</option>
                <option value="мая" <?php if($e_month == 'мая') echo "selected"?> >Май (05)</option>
                <option value="июня" <?php if($e_month == 'июня') echo "selected"?> >Июнь (06)</option>
                <option value="июля" <?php if($e_month == 'июля') echo "selected"?> >Июль (07)</option>
                <option value="августа" <?php if($e_month == 'августа') echo "selected"?> >Август (08)</option>
                <option value="сентября" <?php if($e_month == 'сентября') echo "selected"?> >Сентябрь (09)</option>
                <option value="октября" <?php if($e_month == 'октября') echo "selected"?> >Октябрь (10)</option>
                <option value="ноября" <?php if($e_month == 'ноября') echo "selected"?> >Ноябрь (11)</option>
                <option value="декабря" <?php if($e_month == 'декабря') echo "selected"?> >Декабрь (12)</option>
            </select>
            <?php
            
// Выпадающий список для года
            
echo "<select class=input type=text name='e_year'>";
            for(
$i 2008$i <= 2010$i++)
            {
                if(
$e_year == $i$temp "selected";
                else 
$temp "";
                echo 
"<option value=$i $temp>$i</option>"."\r\n";
            }
            echo 
"</select> ";
            
?>
        </td>

В таблице MySQL для записи этих значений отведено поле:

  `date` date NOT NULL default '0000-00-00',

Подскажите, как туда записывать значения и как потом их от туда извлекать.

   
 
 автор: Ученик   (30.05.2008 в 20:18)   письмо автору
 
   для: Dizels   (30.05.2008 в 19:27)
 

Селект с выбором месяца лучше переписать вот так.


      $months = array(
      '1' => 'Январь',
      '2' => 'Февраль',
      '3' => 'Март',
      '4' => 'Апрель',
      '5' => 'Май',
      '6' => 'Июнь',
      '7' => 'Июль',
      '8' => 'Август',
      '9' => 'Сентябрь',
      '10' => 'Октябрь',
      '11' => 'Ноябрь',
      '12' => 'Декабрь'     
      );
      
      echo "<select class=input type=text name='e_year'>";
      foreach ($months AS $key=>$value)
      {
        $isSelected = ($e_year == $key)?('selected'):('');
        echo "<option value='".$key."' ".$isSelected.">".$value." (".sprintf("%02d", $key).")";
      }
      echo "</select>";



Добавлять и выбирать соответственно вот так

$sql = "insert into table (`date`) values('".$e_year."-".$e_month."-".$e_day."')";
mysql_query($sql);


$sql = "select `date` from table where ...";
$result = mysql_query($sql);
if($result && mysql_num_rows != 0)
  $dateData = mysql_result($result, 0);

$explDate = explode("-", $dateData);

$e_year = $explDate[0];
$e_month = $explDate[1];
$e_day = $explDate[2];

   
 
 автор: Dizels   (30.05.2008 в 21:19)   письмо автору
 
   для: Ученик   (30.05.2008 в 20:18)
 

А если я добавляю значения в таблицу вот таким способом:
$query = "INSERT INTO site VALUES (NULL,
                                '$title',
                                '$description',
                                '$keywords',
                                '$tegs',
                                '$url',
                                '$nofollow',
                                $category,
                                $pynkt,
                                $pay,
                                ******);";

***** - то как сюда дату добавить?

   
 
 автор: Dizels   (02.06.2008 в 11:32)   письмо автору
 
   для: Dizels   (30.05.2008 в 21:19)
 

?

   
 
 автор: Trianon   (02.06.2008 в 11:58)   письмо автору
 
   для: Dizels   (02.06.2008 в 11:32)
 

Чем не устроил предложенный способ
'$e_year-$e_month-$e_day'
?

В каком виде эта дата у Вас находится в переменных php?

   
 
 автор: Dizels   (02.06.2008 в 12:02)   письмо автору
 
   для: Trianon   (02.06.2008 в 11:58)
 

Выдает вот такое:
Column count doesn't match value count at row 1


Сама запись в БД выглядит вот так:
// Формируем SQL-запрос на добавление нового сайта
$query = "INSERT INTO site VALUES (NULL,
                                '$title',
                                '$description',
                                '$keywords',
                                '$tegs',
                                '$url',
                                '$nofollow',
                                $category,
                                $pynkt,
                                $pay,
                                '$e_year-$e_month-$e_day');";

   
 
 автор: Trianon   (02.06.2008 в 12:07)   письмо автору
 
   для: Dizels   (02.06.2008 в 12:02)
 

>Выдает вот такое:
>Column count doesn't match value count at row 1

Это сообщение означает, что число указанных в операторе INSERT полей не соответствует числу столбцов.

>Сама запись в БД выглядит вот так:

Нет. Так выглядит оператор php, формирующий запрос.
Как именно выглядит сам запрос, можно посмотреть, выполнив echo $query;

   
Rambler's Top100
вверх

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