php - 在 CakePHP 中一次存储多行

标签 php mysql cakephp cakephp-1.3

我正在使用 CakePHP 1.3 开发一个项目,该项目将存储一组成员 - 每个成员都有名字和姓氏 - 以及每个成员的多个结果,这些结果将存储日期、对成员的引用以及积分数.

数据库结构如下图所示。

CREATE TABLE `members` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `forename` varchar(255) NOT NULL,
  `surname` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `results` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `member_id` int(10) unsigned NOT NULL,
  `date` date NOT NULL,
  `points` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `member_id` (`member_id`)
);

该应用程序正在一个一个地输入每个成员的详细信息,这很好 - 但我需要一个“添加结果”页面,该页面将列出数据库中的每个成员并允许输入一个数值该成员(member)获得的积分数。每次添加结果时,它们都是同一日期的,每个成员都会得到积分,即使积分为 0。

谁能指点一下如何显示符合上述规范的表单,以及如何同时存储多行?

提前致谢。

最佳答案

由于您是蛋糕新手...这里有一些提示。使用 pr($this->data)在您的 Controller 中查看提交表单时您收到的确切数据。

像这样给你的输入字段命名约定 data[YourModel][field]所以例如你会改变<input name="points[]" type="text" /><input name="data[Result][points]" type="text" />然后在 Controller 中它可以被访问

 pr($this->data['Result']['points']);

保存到多个模型

您可能会发现从当前 Controller 访问这两个模型最简单,因此在您的 Controller 顶部添加此

class ResultsController extends AppController {   
 var $uses = array('Member', 'Result');

现在您可以像这样将您想要的任何数据保存到您想要的任何模型。

$dataForResults = array();
$dataForResults['Result']['points'] = $this->data['Result']['points'];
$this->Result->save($dataForResults);

这不一定是从数据库中检索记录,编辑它然后放回去,这将创建一个新记录。

编辑记录更像是,

$dataByMemberId = $this->Result->findByMemberId($data['Result']['member_id']);
$dataByMemberId['Result']['points'] = $this->data['Result']['points'];
$this->Result->save($dataByMemberId);

这将在 Results 表中获取该成员的当前记录,编辑 points条目,然后将其重新提交回数据库中的位置。

有点啰嗦,但应该可以让您入门。

关于php - 在 CakePHP 中一次存储多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111951/

相关文章:

mysql - 如何使用辅助函数创建更新两个字段 mySQL 的存储过程

php - cake_session 1213 : Deadlock found when trying to get lock; try restarting transaction

php - 使用backbone.js 与 php mvc 框架的优点

php - Twitter api 1.1 图像未显示在提要中

php - 在将动态虚拟主机与 dnsmasq 一起使用时,修复 phpmyadmin open_basedir 限制生效

php - 使用 PDO 准备语句的登录页面不起作用,但在其他方面工作正常

php - CakePHP 重定向状态代码 404

php - 使用 PHP 压缩文件并附加到电子邮件

php - 如何在数据库中存储多语言网站信息?

MySQL 触发器中的 IF 语句