1

PHPでタイムラインサイトを構築しています。タイムラインのエントリは、html 入力フォームを介してデータベースに入力されます。

以下は、HTMLフォームから入力値を取得してデータベースに保存するために使用しているphpです。

// Collects information from the forms //
$year = mysql_prep($_POST['year']);
$concept = mysql_prep($_POST['concept']);
$author = mysql_prep($_POST['author']);
$text = mysql_prep($_POST['text']);
$century = mysql_prep($_POST['century']);
$file_under = mysql_prep($_POST['file_under']);
$pic=($_FILES['photo']['name']);

$query = "INSERT INTO fields (year, concept, author, text, century, 
                              file_under, photo, created, modified) 
          VALUES ('{$year}', '{$concept}', '{$author}', '{$text}', '{$century}',
                             '{$file_under}', '{$pic}', NOW(), NOW())";
$result = mysql_query($query, $connection);
    if ($result) {
        redirect_to("index.php");
    } else {
    //display error message
    echo "<p>Yikes!</p>";
    echo "<p>" . mysql_error() . "</p>";
    }

これは私の目的には問題なく機能しますが、世紀の値を入力する必要があります。4 桁の年に基づいて php で世紀を判断する必要があります。

4 桁の値を取得し、これを使用してデータベースに格納される値yearを決定したいと考えています。century

たとえば、入力された年が 2002 年の場合、「世紀」のデータベースに入れる値として「21」が必要です。この値はコンテンツがタイムライン上でどのように表示されるか (つまり$query = "SELECT * FROM fields WHERE century = '21' ORDER by year ASC";

これを行う最善の方法は何ですか?

4

1 に答える 1

0

$世紀 = substr($年、0、2) + 1;

トリックを行う必要があります。$year が数値であることを確認するための検証を追加するかもしれません (既に行われている可能性があります)。

于 2012-06-25T02:31:09.493 に答える