gpt4 book ai didi

php - Codeigniter - 插入多个表

转载 作者:行者123 更新时间:2023-11-29 16:13:05 25 4
gpt4 key购买 nike

我在使用 Codeigniter 中的预订表单时遇到问题;当访客进行预订时,详细信息应该插入到数据库中的两个表中(“reservation”和“period”,从“reservation”到“period”有一个 FK)。

当我尝试进行预订时,数据库中没有出现任何内容,我无法判断是否是表单问题,或者 Controller 和模型之间的问题(没有抛出任何错误 - 数据库中什么也没有) 。我尝试遵循 this example 中的逻辑。

这是我的表单(gite-booking-form.php):

<html>
<head>
<title>Gite booking form</title>
</head>
<body>

<?php echo validation_errors(); ?>

<?php echo form_open('GiteCtl/giteBookingForm'); ?>

<h5>Select a gite:</h5>
<?php
$gitenames = array('giteA', 'giteB', 'giteC', 'giteD');
$gitename = isset($_POST['gitename']) && in_array($_POST['gitename'], $gitenames) ? $_POST['gitename'] : 'giteA';

echo '<select name="gitename">';
foreach ($gitenames as $option) {
echo '<option value="' . $option . '"' . (strcmp($option, $gitename) == 0 ? ' selected="selected"' : '') . '>' . $option . '</option>';
}
echo '</select>';

?>

<h5>Start date</h5>
<input type="date" value="<?php echo set_value('start_date'); ?>"/>

<h5>End date</h5>
<input type="date" value="<?php echo set_value('end_date'); ?>"/>


<div><input type="submit" value="Submit"/></div>
</form>

</body>
</html>

我的模型(Gite.php):

<?php

class Gite extends CI_Model
{


public function __construct() {
parent::__construct();
}




public function reservationInsert($table, $data)
{
$query = $this->db->insert($table, $data);

return $this->db->insert_id();
}


}

和 Controller :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class GiteCtl extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->model('Gite');
$this->load->library('calendar');
$this->load->library('form_validation');
$this->load->library('session');
$this->load->model('Visitors');
}

public function isLoggedIn()
{
$isLoggedIn = $this->session->userdata('isLoggedIn');

if (!isset($isLoggedIn) || $isLoggedIn != TRUE) {
echo 'In order to book a gite, you must first login';
echo 'button: visitor-login.php'; // I will add this later
} else {
$this->giteBookingForm();
}
}

public function giteBookingForm()
{


$this->form_validation->set_rules('gite_selection', 'gite_select', 'required');
$this->form_validation->set_rules('start_date', 'startDate', 'required', array('required' => 'You must choose a %s.'));
$this->form_validation->set_rules('end_date', 'endDate', 'required', array('required' => 'You must provide an %s.')
);

if ($this->form_validation->run() == FALSE) {
$this->load->view('gite-booking-form');


} else {


$start_date = $this->input->post('start_date');
$end_date = $this->input->post('end_date');
$isHauteSaison = 1;
$isWeekend = 1;

$period_data = array(

'start_date' => $start_date,
'end_date' => $end_date,
'isHauteSaison' => $isHauteSaison,
'isWeekend' => $isWeekend

);



$gite_selection = $this->input->post('gite_selection');
$visitor_email = $this->session['visitorName'];
$price = 100.00;


$period_id = $this->Gite->reservationInsert('period', $period_data);

$reservation_data = array(
'gite_selection' => $gite_selection,
'visitor_email' => $visitor_email,
'price' => $price,
'period' => $period_id
);


$insert = $this->Gite->reservationInsert('reservation', $reservation_data);


}
}


}

谢谢,E.

最佳答案

最终还是形式;从表单检索数据的 php 比我想象的更复杂:

<h5>Select a gite:</h5>
<?php
$gitenames = array('giteA','giteB','giteC','giteD');
$gitename = isset($_POST['gitename']) && in_array($_POST['gitename'],$gitenames)?$_POST['gitename']:'giteA';

echo '<select name="gitename">';
foreach($gitenames as $option) {
echo '<option value="'.$option.'"'.(strcmp($option,$gitename)==0?' selected="selected"':'').'>'.$option.'</option>';
}
echo '</select>';

?>

<h5>Start date</h5>


<input type="date" class="form-control" name="start_date" value="<?php echo isset($start_date) ? set_value('start_date', date('Y-m-d', strtotime($start_date))) : set_value('start_date'); ?>">


<h5>End date</h5>

<input type="date" class="form-control" name="end_date" value="<?php echo isset($end_date) ? set_value('end_date', date('Y-m-d', strtotime($end_date))) : set_value('end_date'); ?>">

关于php - Codeigniter - 插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55082602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com