2016-10-08 4 views
2

Я новичок в PHP-массивах ... но я создал массив, чтобы получить все даты между двумя датами, которые были отправлены в форме.Сохранить массив в DB

Смотри ниже:

$endDate=$_POST[todate]; 
      $startDate =$_POST[fromdate]; 

print_r(getDatesFromRange("$datef", "$dateto")); 

function getDatesFromRange($startDate, $endDate) 
{ 
    $return = array($startDate); 
    $start = $startDate; 
    $i=1; 
    if (strtotime($startDate) < strtotime($endDate)) 
    { 
     while (strtotime($start) < strtotime($endDate)) 
     { 
      $start = date('Y-m-d', strtotime($startDate.'+'.$i.' days')); 
      $return[] = $start; 
      $i++; 
     } 
    } 

    return $return; 
} 

Это приводит ниже

Array ([0] => 2016-10-10 [1] => 2016-10-11 [2] => 2016-10-12 [3] => 2016-10-13 [4] => 2016-10-14 [5] => 2016-10-15 [6] => 2016-10-16 [7 ] => 2016-10-17 [8] => 2016-10-18 [9] => 2016-10-19)

есть способ сохранить каждую из этих дат в базе данных MySQL с помощью PHP?

ответ

3

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

$date = getDatesFromRange("$datef", "$dateto"); 
    foreach ($date as $d){ 
     $sql = "INSERT INTO MyDatabase (dateCol) 
       VALUES ('$d')"; 
     if ($conn->query($sql) === TRUE) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: " . $sql . "<br>" . $conn->error; 
     } 
    } 
0

Вы можете сохранить массив в MySQL с помощью serialize/unserialize

Пример -

$array = array("my", "litte", "array", 2); 

$serialized_array = serialize($array); 
$unserialized_array = unserialize($serialized_array); 

var_dump($serialized_array); // gives back a string, perfectly for db saving! 
var_dump($unserialized_array); // gives back the array again 

Вы также можете использовать Implode и взрываются.

Пример -

<?php 
    $vegetables[0] = "corn"; 
    $vegetables[1] = "broccoli"; 
    $vegetables[2] = "zucchini"; 
    $text = implode(",", $vegetables); 
    echo $text; 
?> 


<?php 
    $text = "corn, broccoli, zucchini"; 
    $vegetables = explode(", ", $text); 
    print_r($vegetables); 
?> 
0

Вы можете сохранить массив в mysql с помощью json_encode/json_decode. Он прост в использовании.

как следующий код:

<?php 
    $dates = array(
     '2016-10-10', '2016-10-11' 
    ); 
    $json_dates = json_encode($dates); 
    $arr = json_decode($json_dates, true); 
?> 
0

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

Вы можете преобразовать ваш массив в json & store в базу данных.

$dates_in_json = json_encode($dates); 
//Insert query 
$insert = mysql_query("INSERT INTO table('dates') VALUES('".$dates_in_json ."')"); 

Вы можете получить эти данные в любом месте и преобразовать в массив как этот

$dates_array = json_decode($dates_in_json, TRUE); 

здесь второй параметр ИСТИНА для преобразования в массив, если вы не будете предоставлять TRUE, JSON будет преобразован в PHP Object.

Смежные вопросы