2012-03-21 44 views
0

這是我的數據:插入一週(7 sparate天)和其他一些數據到數據庫中使用一個for循環和PDO

Day   From:  To: 

Sunday   12PM  8PM 

Monday   12PM  9PM 

Tuesday  12PM  6PM 

Wednesday  12PM  6PM 

Thursday  12PM  6PM 

Friday   12PM  5PM 

Saturday  12PM  5PM 

如何去使用for循環插入上述數據(從$ _POST)到我的MySQL數據庫與PHP的PDO?我的輸入字段命名爲SundayTimeFrom,SundayTimeTo,MondayTimeFrom,MondayTimeTo等

僞代碼,我扔在一起真快:

$sql = 'Insert INTO tableName (day, from, to) Values (:day, :from, :to)'; 
for(i = Sunday; I < Saturday; i++) //what do I do here? 
{ 
    $stmt = $this->_db->prepare($sql); 
    $stmt->bindParam(":day", $i, PDO::PARAM_STR); 
    $stmt->bindParam(":from", $_POST[$i + 'TimeFrom'], PDO::PARAM_STR); 
    $stmt->bindParam(":to", $_POST[$i + 'TimeTo'], PDO::PARAM_STR); 
} 

回答

1

可以循環7次,並使用日期( 'L',時間() + 24小時,以秒爲單位)讓你的日子成爲信件。

看日期(「L」)這裏http://php.net/date

但最好是改變你的$ _ POST要達到這樣的$_POST['days'][0][from] = '10PM';$_POST['days'][0][to] = '8PM';

您可以通過書面形式做到這一點:如果我還記得<input type="text" name="days[][from]" value="10PM" />正確

或者乾脆<input type="text" name="days[Monday][from]" value="10PM" /><input type="text" name="days[Monday][to]" value="8PM" />並做了foreach($_POST['days'] as $value)

,你可以看到你有很多的解決方案:)的

+0

噢好吧。所以我把它變成一個數組,其中days []將是天[0](又名星期日)至天[6](又名星期六)是否正確? – OneSneakyMofo 2012-03-21 08:49:01

+0

是的,你可以做到這一點。我不知道你如何在html端顯示你的表單,所以我不能幫你太多。 – NeeL 2012-03-21 08:50:12

0

如果不是SundayTimeFrom和​​領域將有名稱schedule[sunday][from]schedule[sunday][to]你可以使用foreach循環就像

$stmt = $this->_db->prepare($sql); 
$stmt->bindParam(":day", $day); 
$stmt->bindParam(":from", $from); 
$stmt->bindParam(":to", $to); 

foreach($_POST['schedule'] as $day=>$span) { 
    someDataValidationHere($day, $span); 
    $from = $span['from']; 
    $to = $span['to']; 
    $stmt->execute(); 
} 

(未經測試)

0

說你的陣列是

$schedule = array (sunday => array (from=>"12PM", to=> "8PM"), 
        monday => array (from=>"1PM", to=> "9PM"), 
        tuesday => array (from=>"2PM", to=> "10PM"), 
        wednesday => array (from=>"3PM", to=> "11PM"), 
); 

使用_REQUEST [「schedule」]並保存在某個數組中,如$ schedule。

現在使用foreach將數組保存在數據庫中。

foreach ($schedule as $day=>$temp1) { 
    foreach ($temp1 as $key=>$time) { 
     if($key == "from") 
     $from = $time; 
     else if($key == "to") 
     $to = $time; 
    } 
    $sth = $this->db->prepare("Insert INTO tableName (day, from, to) Values (:day, :from, :to)"); 
    $sth->execute(array(':day'=> $day, ':from'=> $from, ':to'=> $to)); 
    } 
相關問題