Как использовать substr в записи обновления MySQL?

0

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

У меня есть текстовое поле "doa" (дата происшествия), которое в настоящее время работает с плагином datepicker kelvinluck jquery.

Первоначально одно текстовое поле doa было разделено на три спуска, а именно: doaDay, doaMonth, doaYear. У каждого из них также есть собственное поле в базе данных.

Но я решил объединить doaDay, doaMonth, doaYear в одно единственное поле, получившее название doa и us kevinluck jquery datepicker.

Теперь, когда у меня есть более 100 записей в моей базе данных с использованием полей doaDay, doaMonth, doaYear, я решил использовать команду substr для извлечения dd (doaDay), mm (doaMonth) и yyyy (doaYear) из новый обновленный dd/mm/yyyy (поле).

Это было мое решение при вставке базы данных:

$doa = $_POST['doa'];
$doaDay = substr($doa, 0, 2);
$doaMonth = substr($doa, 4, 5);
$doaYear = substr($doa, 7, 10);

Затем запись была вставлена ​​после POST.

mysql_query("INSERT INTO tbl_personalinjury (`doaDay`, `doaMonth`, `doaYear`)                          
VALUES ('$doaDay', '$doaMonth', '$doaYear')");

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

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form")) {
  $updateSQL = sprintf("UPDATE tbl_accident SET doaDay=%s, doaMonth=%s, doaYear=%s, WHERE id=$client_id",
                       GetSQLValueString($_POST['doaDay'], "text"),
                       GetSQLValueString($_POST['doaMonth'], "text"),
                       GetSQLValueString($_POST['doaYr'], "text"),

Как мне получить извлечение dd, mm, yyyy из текстового поля doa и присвоение значений $doaDay, $doaMonth и $doaYear соответственно?

  • 0
    Почему вы разделяете день, месяц и год, а не сохраняете их как DATETIME ?! Вы бы использовали MySQL STR_TO_DATE (строка, 'date_format') для вставки и обновления ...
  • 0
    Спасибо за ответ. Я начал строить программу как новичок, поэтому я причинял себе неудобства во многих отношениях. Несмотря на то, что каждый день я учусь чему-то новому и лучшему способу работы, мне приходится слегка подправлять плоды этих новых уроков, чтобы приспособиться к существующей системе.
Теги:

2 ответа

1
Лучший ответ

Почему бы просто не сделать $doa_bits = explode('/', $doa);. Это должно дать вам массив с 3 элементами, $doa_bits[0] будет днем, $doa_bits[1] будет месяц, а $doa_bits[2] будет годом.

  • 0
    Как бы это соответствовало контексту второго примера? "if ((isset ($ _ POST [" MM_update "])) && ($ _POST [" MM_update "] ==" form ")) {..."
  • 1
    GetSQLValueString($doa_bits[0], "text") и т. Д ...
Показать ещё 2 комментария
0
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form")) {
$doa_bits = explode('/', $doa)
      $updateSQL = sprintf("UPDATE tbl_accident SET doaDay=%s, doaMonth=%s, doaYear=%s, WHERE id=$client_id",
                           GetSQLValueString($doa_bits[0], "text"),
                           GetSQLValueString($doa_bits[1], "text"),
                           GetSQLValueString($doa_bits[2], "text"),

это то, что вы намекаете на хорошего сэра?

  • 1
    да, рад, что это сработало для вас :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню