在Web应用程序中,我需要<select>使用MySQL枚举的所有可能值填充a .
当我执行以下任何一项时:
SHOW COLUMNS FROM mytable LIKE 'mycolumn';
SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'mytable' AND COLUMN_NAME = 'mycolumn';
我总是最终得到enum('valueA','valueB','valueC').
我知道我可以用PHP解析它但是它可以仅使用SQL来完成吗?我需要这样的东西:
+-----------------+ | values | +-----------------+ | valueA | | valueB | | valueC | +-----------------+
我有连接序列的问题.类似的问题是在CakePHP中操纵JOINS顺序的另一个问题.答案是使用可包含的行为.在我的情况下,这是不可接受的,因为我有更深的关联和可包含产生太多的查询.Containable不会为三个级别的关联生成连接.它为第二级表中的每个条目生成其他查询.
我的查询是:
$this->LevelOne->find('all', array(
'joins' => array(array(
'table' => 'level_three',
'alias' => 'LevelThree',
'type' => 'LEFT',
'conditions' => array(
'LevelThree.id = LevelTwo.level_three_field_id'
)
))
));
Run Code Online (Sandbox Code Playgroud)
这里的问题是cake生成多个连接,但LevelThree表的连接在LevelTwo表的连接之前完成,并且在'on子句'中引发SQL错误"Unknown column'LevelTwo.level_three_field_id'".如果在所有LevelTwo加入后,LevelThree连接将位于查询的末尾,那么查询就可以了.
那么,问题是如何改变连接的顺序?
像这样的PHP数组的Java等价物是什么:
$user = array("name" => "John", "email" => "john@mail.com");
Run Code Online (Sandbox Code Playgroud) 启动应用程序需要5-10秒从数据库中检索初始数据的正确方法是什么?这是我到目前为止所得到的,但我不确定没有更好的方法.我希望GUI和数据库访问将在不同的线程中,以便GUI构建将与数据检索同时发生.
public static void main(String[] args) {
final Controller controller = new Controller();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
View frame = new View();
controller.setView(frame);
}
});
Model model = new Model();
controller.setModel(model);
controller.getInitialData();
}
Run Code Online (Sandbox Code Playgroud) java model-view-controller user-interface swing multithreading
我的表单中有一个提交按钮,如下所示:
<?php echo $this->Form->end(__('Submit')); ?>
Run Code Online (Sandbox Code Playgroud)
我想嵌入作为输入表单一部分的变量。
例如,我想嵌入一个在这里输入的变量$this->Form->input('user_id');。
有谁知道如何做到这一点?我目前将此onsubmit作为选项数组的一部分,但是当我尝试嵌入变量时它会引发错误。
<?php echo $this->Form->create('Shift', array(
'onsubmit' => 'return confirm("Creating shift for '$id' on ");'
)); ?>
Run Code Online (Sandbox Code Playgroud)
现在对这个问题进行编辑。所以 Javascript 解决方案运行良好。现在的问题是我希望警报框显示用户的姓名,这是在保管箱中显示的内容。但是,HTML 标记包含用户的 ID。这是 HTML
<div class="input select required">
<label for="my_user_id">User</label>
<select name="data[Shift][user_id]" id="my_user_id" required="required">
<option value="1">john doe</option>
<option value="2">john johnson</option>
Run Code Online (Sandbox Code Playgroud)
有没有办法<option>使用 Javascript访问标签之间的值?
我尝试为CakePHP项目创建单元测试.在创建灯具和一些测试后,我遇到了问题:
警告:第3081行的/app/cake/2.4.7/Cake/Model/Datasource/DboSource.php中不存在列类型枚举('on','off')
...
应用程序错误:调用处理程序方法异常'PDOException',消息'SQLSTATE [42S22]:未找到列:1054/app/cake/2.4.7/Cake/Model/Datasource/中的'字段列表''中的未知列'state' DboSource.php:2923
我知道CakePHP不支持枚举,但我无法更改数据类型.是否有任何解决方法可以使用枚举运行单元测试?
不同的数据库在SQL支持和实现方面存在差异.有时SQL语法有所不同,有时缺少对某些SQL命令的支持,有时数据库具有其他数据库没有的功能.
编写适用于不同数据库(MySQL,PostgreSQL,Oracle,MSSQL,SQLite)的SQL查询的良好实践考虑到开发人员使用的框架(如CakePHP,Codeigniter,Zend等)提供了数据库抽象层?开发人员应该避免哪种SQL语法?
我以前用javax.swing.JLabel做透明背景:
lbl.setBackground(new Color(0, 0, 0, 0));.
但它不适用于java.awt.Label.有没有简单的方法使标签透明?
更新:
public class SplashBackground extends Panel {
private static final long serialVersionUID = 1L;
private Image image = null;
/**
* This is the default constructor
*/
public SplashBackground() {
super();
initialize();
}
/**
* This method initializes this
*
*/
private void initialize() {
image = Toolkit.getDefaultToolkit().createImage(getClass().getResource("/splash/splash.jpg"));
this.setLayout(null);
}
@Override
public void paint(Graphics g) {
super.paint(g);
if(image != null) {
g.drawImage(image, 0,0,this.getWidth(),this.getHeight(),this);
}
}
}
Run Code Online (Sandbox Code Playgroud)
和
lbl= new Label();
lbl.setBackground(new Color(0, …Run Code Online (Sandbox Code Playgroud) 我使用galleria滑块作为jquery滑块和jwplayer来显示视频.问题是它不会在滑块中显示jwplayer,它只显示一个黑色方块.我让它为图像工作,但无法让它适用于视频播放器jwplayer.知道如何操作的人可以修改下面的代码,以便它在我的应用程序中工作吗?
环球免税店:http://galleria.io/docs/
jwplayer:http://www.longtailvideo.com/jw-player/
<?php if(count($arrVideoFile[$key]) > 1){ ?>
<style>
#galleriavideo_<?php echo $key; ?>{ width: 500px; height: 300px; background: #000 }
</style>
<div id="galleriavideo_<?php echo $key; ?>">
<?php foreach ($arrVideoFile[$key] as $v) { ?>
<div id="myElement-<?php echo $key.'-'.$i; ?>">Loading the player...
<script type="text/javascript">
jwplayer("myElement-<?php echo $key.'-'.$i; ?>").setup({
file: "<?php echo 'VideoFiles/'.$v; ?>",
width: 480,
height: 270
});
<?php $i++; ?>
</script>
</div>
<?php } ?>
</div>
<script type="text/javascript">
Galleria.loadTheme('jquery/classic/galleria.classic.min.js');
Galleria.run('#galleriavideo_<?php echo $key; ?>');
</script>
<?php …Run Code Online (Sandbox Code Playgroud) 我们有一个网站,我们正在转移到一个新的服务器.在旧服务器上一切正常.它只是一个网站的开始,所以它非常简单.
迁移到我们的新服务器时,尝试登录不再有效.但是 - 根据debugKit,生成的查询由$this->Auth->login():
SELECT `User`.`id`, `User`.`name`, `User`.`email`, `User`.`username`, `User`.`password`, `User`.`role`, `User`.`created`, `User`.`modified`
FROM `shopping_main`.`users` AS `User`
WHERE `User`.`username` = 'another'
AND `User`.`password` = '3813dd3a5eeb39c857d56f9ae58ec7f8237e5eb3'
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
IS返回1行 - 但是这个if块失败了:
if ($this->Auth->login()) {
$this->Session->setFlash(__('You are now logged in.'));
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
Run Code Online (Sandbox Code Playgroud)
PDO安装在两个(相同版本)上 - 不确定是否重要,但我们之前遇到过奇怪的问题.
在全新安装CakePHP 2.2稳定版时,一切都亮起绿色(数据库连接,modrewrite等等)
我原本以为我们的数据或代码等等有问题,但是 - 它是相同的数据,相同的代码,并且通过它返回1行的事实得到验证.
下面是我$components在AppController中最新的数组:
public $components = array(
'DebugKit.Toolbar',
'Session',
'Cookie',
'Auth' => array(
'loginRedirect' => array('controller' => 'dashboard', 'action' => 'index', 'admin'=>true), …Run Code Online (Sandbox Code Playgroud) php ×5
cakephp ×4
java ×3
enums ×2
sql ×2
arrays ×1
associations ×1
awt ×1
cakephp-2.2 ×1
cakephp-2.4 ×1
database ×1
forms ×1
frameworks ×1
hashmap ×1
iframe ×1
javascript ×1
join ×1
jquery ×1
jwplayer ×1
label ×1
model ×1
mysql ×1
swing ×1
testing ×1
transparency ×1
transparent ×1
unit-testing ×1