Как проверить выпадающие меню в php? - PullRequest
0 голосов
/ 01 апреля 2009

Мы должны вставить дату рождения (это выпадающий список, содержащий ДД / ММ / ГГГГ) в MySql, проверяя его. Как это можно сделать?


Это проверка формы для даты рождения, которая вводится пользователем из опций в выпадающем меню. Мой вопрос заключается в том, как вставить эту входную DOB в MySql, используя PHP

Ответы [ 4 ]

1 голос
/ 01 апреля 2009

Вы могли бы прежде всего сделать (для каждого поля):

if((int) $field == 0)
{
    return false;
}

И после этого вы можете сделать:

$birthday = date('Y-m-d', strtotime($day . '-' . $month . '-' . $year));
mysql_query("INSERT INTO your_table(birthday) VALUES('" . $birthday . "')";
0 голосов
/ 03 апреля 2009

Ваш вопрос немного сбивает с толку. Вставка данных «путем проверки» не имеет смысла.

Если вы хотите знать, как вставлять данные, то это основной вопрос MySQL, на который, вероятно, лучше всего ответить, обратившись к онлайн-документации .

Если вы хотите знать, как проверять данные, вам нужно будет указать, какой тип проверки вы хотите - так как Сандерс ответил. Это все равно что спросить "как мне сделать графический интерфейс?" Есть бесконечные способы, которыми вы можете сделать это. Вопрос слишком расплывчатый.

Если вы просто хотите проверить, является ли введенное значение действительной датой, быстрый и грязный (ленивый) способ сделать это - просто вставить его в таблицу (при условии, что у вас есть столбец DATE / DATETIME введите ), затем выполните дополнительный запрос для извлечения сохраненного значения. Если сохраненное значение равно «нулевому» значению этого типа данных (т. Е. «0000-00-00» или «0000-00-00 00:00:00»), то отправленное значение не было действительной датой.

Итак, ваш код будет выглядеть примерно так:

<?
$month = mysql_real_escape_string($_POST['month']);
$day = mysql_real_escape_string($_POST['day']);
$year = mysql_real_escape_string($_POST['year']);
$query = "INSERT INTO my_table (`birthday`) VALUES ('$year-$month-$day')";
mysql_query($query);
$query = "SELECT `birthday` FROM my_table WHERE `id`=LAST_INSERT_ID()";
$qid = mysql_query($query);
$res = mysql_fetch_object($query);
if ($res->birthday == '0000-00-00') {
    // submitted date was invalid
}
?>

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

Кстати: я думаю, что вы хотели сказать «выпадающий список» или «список выбора». Раскрывающееся меню - это нечто другое.

0 голосов
/ 01 апреля 2009

Полагаю, под выпадающим списком вы подразумеваете серию таких выборов, верно?

<select name="month">
<option value ="01">January</option>
<option value = "02">February<option>
...
</select>
<select name="day">
<option value = "01">01</option>
...
</select>
<select name="year">
<option value = "1930">1930</option>
[etc.]

Если это так, то ваши данные самопроверка. На стороне сервера вы можете просто сделать:

<?php
$mysql_date = "$_POST[year]" . "-" . "$_POST[month]" . "-" . "$_POST[day]";
mysql_query("INSERT INTO your_table (`date`) VALUES ('$mysql_date')");
?>

Надеюсь, я не правильно понял вопрос.

0 голосов
/ 01 апреля 2009

Что за проверка? mysql напечатает ошибку, когда дата недействительна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...