Php açılır menüler doğrulamak nasıl?

3 Cevap php

We have to insert the Date of Birth(which is a drop down box containing DD/MM/YYYY) in MySql by validating it. How can it be done?


Açılan menu.My söz seçeneklerden kullanıcı tarafından girilen Doğum tarihi Onun bir form doğrulama PHP kullanarak MySQL bu giriş DOB eklemek için nasıl

3 Cevap

Sorunuzu biraz kafa karıştırıcı. Mantıklı değil "it doğrulayarak" Veri ekleme.

Eğer veri eklemek için nasıl bilmek istiyorsanız, iyi ki muhtemelen en iyi online documentation danışmanlık tarafından cevaplanır temel MySQL soru.

Eğer verileri doğrulamak için nasıl bilmek istiyorsanız, istediğiniz doğrulama türünü belirtmek zorunda gidiyoruz - zımpara yanıtladı gibi. Bu tür soran gibi "nasıl bir GUI yapabilirim?" Bunu yapabilirsiniz sonsuz yolu vardır. Soru çok muğlak olduğunu.

Sadece sunulan değeri sadece {bir sütun var varsayarak (tabloya eklemek için geçerli bir tarih, bunu yaparken hızlı ve kirli (tembel) yoludur olmadığını kontrol etmek istiyorsanız, [(0)] }), sonra saklanan değerini almak için bir takip sorgu yapmak. Kayıtlı değeri, bu veri türünün "sıfır" değeri (örn. '0000-00-00 'veya '0000-00-00 00:00:00') ise, sunulan değeri geçerli bir tarih değildi.

Yani kod aşağıdaki gibi olacaktır:

<?
$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
}
?>

Tabii ki, yukarıda belirtilen kod pek çok sakıncaları vardır. İdeal olarak, muhtemelen verileri doğrulamak istiyorum before bunu takın ve yerine bir yenisini ekleyerek daha kaydı güncelliyoruz eğer geçersiz bir yazılır önce, daha sonra orijinal değerini almak gerekir bir.

BTW: Ben size "açılır listesinde" demek ya da anlamı düşünüyorum "listesini seçmek." Bir açılan menü başka bir şeydir.

Sen her şeyden önce (her alan için) yapabileceği:

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

Ve bundan sonra yapabileceği:

$birthday = date('Y-m-d', strtotime($day . '-' . $month . '-' . $year));
mysql_query("INSERT INTO your_table(birthday) VALUES('" . $birthday . "')";

Ben sağ, böyle seçtiği bir dizi anlamına açılır tarafından varsayıyorum?

<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.]

Bu durum buysa, o zaman veri kendini doğrularken. Sunucu tarafında, sadece yapabileceği:

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

Ben soruyu yanlış vermedi umuyoruz.